dataaccess.cs
来自「数据库开发与实例(1+1混合数据库开发实例丛书)人事管理系统的源代码」· CS 代码 · 共 213 行
CS
213 行
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
namespace HRMan
{
/// <summary>
/// DataAccess类的摘要说明。
/// </summary>
class DataAccess
{
SqlConnection conn;
static string Str = "Data Source=IIZ;Initial Catalog=HRManBeifen;Integrated Security=SSPI;";
public DataAccess()
{
conn = new SqlConnection(Str);
conn.Open();
}
public int ExeSQL(string sql)
{
SqlCommand cmd = new SqlCommand(sql,this.conn);
try
{
cmd.ExecuteNonQuery();
return 0;
}
catch(System.Data.SqlClient.SqlException ex)
{
MessageBox.Show(ex.Message.ToString());
return -1;
}
finally
{
cmd.Dispose();
this.conn.Close();
}
}
// 判断数据库是否有记录,有记录则返回真,无则返回假
public bool IsRead(string sql)
{
SqlCommand cmd = new SqlCommand(sql,this.conn);
SqlDataReader dr = cmd.ExecuteReader();
try
{
if(dr.Read())
{
return true;
}
else
{
return false;
}
}
catch(System.Data.SqlClient.SqlException ex)
{
MessageBox.Show(ex.Message.ToString());
return false;
}
finally
{
dr.Close();
cmd.Dispose();
this.conn.Close();
}
}
public void ExeSQLs(string []sql)
{
SqlCommand cmd = new SqlCommand();// OleDbCommand();
int j = sql.Length;
SqlTransaction transaction = this.conn.BeginTransaction();
try
{
cmd.Connection = this.conn;
cmd.Transaction = transaction;
foreach(string str in sql)
{
cmd.CommandText = str;
cmd.ExecuteNonQuery();
}
transaction.Commit();
}
catch(System.Data.SqlClient.SqlException ex)
{
transaction.Rollback();
MessageBox.Show(ex.Message.ToString());
}
finally
{
cmd.Dispose();
this.conn.Close();
}
}
public DataTable ExeSQLdt(string sql)
{
try
{
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch(System.Data.SqlClient.SqlException ex)
{
MessageBox.Show(ex.Message.ToString());
return null ;
}
finally
{
this.conn.Close();
}
}
public void ReadImage(int Id,PictureBox pb)
{
try
{
string sql = "select * from Photo where phId=" + Id;
SqlCommand cmd = new SqlCommand(sql, this.conn);
SqlDataReader dr = cmd.ExecuteReader();
if(dr.Read())
{
MemoryStream ms = new MemoryStream((byte[])dr["pType"]);
pb.Image = Image.FromStream(ms,true);
dr.Close();
cmd.Dispose();
this.conn.Close();
}
else
{
pb.Image = null;
}
}
catch(Exception ee)
{
MessageBox.Show(ee.ToString());
}
}
public void WriteImage(string path,int Id)
{
string sqlUpdate = "update Photo set pType=@pType where phId=" + Id;//更新数据库语句
string sqlInsert = "insert into Photo values (@phId,@pType)";//插入数据库语句
string sqlSelect = "select * from Photo where phId=" + Id;//查询数据库语句
DataAccess DA = new DataAccess();
if(DA.IsRead(sqlSelect) == true)
{
try
{
DialogResult result = MessageBox.Show("相片已存在,是否替换?","提示!",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
if(result == DialogResult.Yes)
{
SqlCommand cmd = new SqlCommand(sqlUpdate, this.conn);
byte [] b = new byte[1024000];
FileStream fs = new FileStream(path,FileMode.Open,FileAccess.Read);
fs.Read(b,0,b.Length);
cmd.Parameters.Add("@pType", SqlDbType.VarBinary, (int)fs.Length);
cmd.Parameters["@pType"].Value = b;
cmd.ExecuteNonQuery();
cmd.Dispose();
this.conn.Close();
}
else
{
return ;
}
}
catch(Exception ee)
{
MessageBox.Show(ee.Message.ToString());
}
}
else
{
try
{
SqlCommand cmd = new SqlCommand(sqlInsert, this.conn);
byte [] b = new byte[1024000];
FileStream fs = new FileStream(path,FileMode.Open,FileAccess.Read);
fs.Read(b,0,b.Length);
cmd.Parameters.Add("@phId", SqlDbType.Int);
cmd.Parameters.Add("@pType", SqlDbType.VarBinary, (int)fs.Length);
cmd.Parameters["@phId"].Value = Id;
cmd.Parameters["@pType"].Value = b;
cmd.ExecuteNonQuery();
cmd.Dispose();
this.conn.Close();
}
catch(Exception ee)
{
MessageBox.Show(ee.Message.ToString());
}
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?