📄 base.cs
字号:
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;
namespace PM
{
/// <summary>
/// Base 的摘要说明。
/// </summary>
public class Base
{
#region 数据库的连接
OleDbConnection conn;
static string str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Directory.GetCurrentDirectory() + "\\manange.mdb";
public Base()
{
conn = new OleDbConnection(str);
conn.Open();
}
#endregion
#region 执行SQL语句
public int ExeSQL(string sql)
{
OleDbCommand cmd = new OleDbCommand(sql,this.conn);
try
{
cmd.ExecuteNonQuery();
return 0;
}
catch(System.Data.OleDb.OleDbException ex)
{
throw new Exception(ex.ToString());
}
finally
{
cmd.Dispose();
this.conn.Close();
}
}
#endregion
#region 判断数据库是否有记录,有记录则返回真,无则返回假
public bool IsRead(string sql)
{
OleDbCommand cmd = new OleDbCommand(sql,this.conn);
OleDbDataReader dr = cmd.ExecuteReader();
try
{
if(dr.Read())
{
return true;
}
else
{
return false;
}
}
catch(System.Data.OleDb.OleDbException ex)
{
throw new Exception(ex.ToString());
}
finally
{
dr.Close();
cmd.Dispose();
this.conn.Close();
}
}
#endregion
#region 批量执行SQL语句
public void ExeSQLs(string []sql)
{
OleDbCommand cmd = new OleDbCommand();
int j = sql.Length;
OleDbTransaction 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.OleDb.OleDbException ex)
{
transaction.Rollback();
throw new Exception(ex.ToString());
}
finally
{
cmd.Dispose();
this.conn.Close();
}
}
#endregion
#region 执行SQL语句并返回一个表
public DataTable ExeSQLdt(string sql)
{
try
{
OleDbDataAdapter da = new OleDbDataAdapter(sql,this.conn);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
catch(System.Data.OleDb.OleDbException ex)
{
throw new Exception(ex.ToString());
}
finally
{
this.conn.Close();
}
}
#endregion
#region 从数据库读图片
public void ReadImage(int Id,PictureBox pb)
{
try
{
string sql = "select * from Photo where phId=" + Id;
OleDbCommand cmd = new OleDbCommand(sql,this.conn);
OleDbDataReader 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());
}
}
#endregion
#region 写图片到数据库
public void WriteImage(string path,int Id)
{
string sql1 = "update Photo set pType=@pType where phId=" + Id;//更新数据库语句
string sql2 = "insert into Photo values (@phId,@pType)";//插入数据库语句
string sql3 = "select * from Photo where phId=" + Id;//查询数据库语句
Base bb = new Base();
if(bb.IsRead(sql3) == true)
{
try
{
DialogResult result = MessageBox.Show("相片已存在,是否替换?","提示!",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
if(result == DialogResult.Yes)
{
OleDbCommand cmd = new OleDbCommand(sql1,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",OleDbType.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
{
OleDbCommand cmd = new OleDbCommand(sql2,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",OleDbType.Integer);
cmd.Parameters.Add("@pType",OleDbType.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());
}
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -