最近在做項目,發現在使用Mysql提供給C#操作的類不是和好用,就想辦法寫了一個操作方便的Mysql數據層類。
比如以前在執 行一個查詢
代碼
public DataSet Getdataset(long pkid){
string sql="select * from mytable where pkid=@pkid";
MySqlCommand _dbcomm = _dbconn.CreateCommand();
MySqlParameterCollection mysqlparacoll = _dbcomm.Parameters;
mysqlparacoll.Add(new MySqlParameter(n, DbType.Object)
{
Value = 123
});
DbDataAdapter dbad=new MySqlDataAdapter(_dbcomm);
DataSet ds=new DataSet();
dbad.Fill(ds);
return ds;
}
執行一個簡單的帶參數的查詢語句都要寫這麼多代碼。
下 面展示簡單的方法
代碼
public DataSet getDataSet(long pkid)
{
string sql="select * from mytable where pkid=@pkid";
using(MyDbHelper db=new MyDbHelper()){
DataSet ds=db.getDataSet(sql,pkid);
return ds;
}
}
//getDataSet Method
/*
public System.Data.DataSet getDataSet(string sql,params object[] paramlist)
{
MySqlCommand dbcomm = CreateDBComm(sql,paramlist);
DbDataAdapter dbad=new MySqlDataAdapter(dbcomm);
DataSet ds=new DataSet();
dbad.Fill(ds);
return ds;
}
*/
至 於裡面的CreateDBComm(sql,paramlist); 方法我就沒有展示了,
這裡用到了正則和反射的,自動創建了 MySqlDbType類型的參數。