asp.net类中公共类DBHelp

在asp.net中使用公共类可以节省很多代码,DBHelp这个类我们经常用,现在来简单介绍一下:

连接字符串从配置文件中读取

private readonly static string CONNSTRING = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;

执行增删改操作方法

public static void GetExecuteNonQuery(string sqlstr,params SqlParameter[] paras)

{

using(SqlConnection conn=new SqlConnection(CONNSTRING))

{

try{

SqlCommand cmd = new SqlCommand(sqlstr,conn);

cmd.Parameters.AddRange(paras);

conn.Open();

cmd.ExecuteNonQuery();

}catch(OleDbException e){

throw new Exception(e.Message);

}

}

}

执行检索查询方法

public static SqlDataReader GetReader(string sqlstr, params SqlParameter[] paras)

{

try{

SqlConnection conn = new SqlConnection(CONNSTRING);

SqlCommand cmd = new SqlCommand(sqlstr, conn);

cmd.Parameters.AddRange(paras);

conn.Open();

return cmd.ExecuteReader(CommandBehavior.CloseConnection);

}catch(OleDbException e){

throw new Exception(e.Message);

}

}

注:CommandBehavior.CloseConnection表示关闭SqlDataReader的同时把连接也关掉

返回第一行第一列的方法

public static object GetExecuteScalar(string sqlstr, params SqlParameter[] paras)

{

using (SqlConnection conn = new SqlConnection(CONNSTRING))

{

try

{

SqlCommand cmd = new SqlCommand(sqlstr, conn);

cmd.Parameters.AddRange(paras);

conn.Open();

return cmd.ExecuteScalar();

} catch(OleDbException e){

throw new Exception(e.Message);

}

}

}

返回DataTable对象

public static DataTable GetDataSet(string sql, SqlParameter[] paramters)

{

using (SqlConnection conn = new SqlConnection(CONNSTRING))

{

try{

DataSet ds = new DataSet();

SqlCommand command = new SqlCommand(sql, conn);

command.Parameters.AddRange(paramters);

SqlDataAdapter adapter = new SqlDataAdapter(command);

adapter.Fill(ds);

return ds.Tables[0];

}catch(OleDbException e){

throw new Exception(e.Message);

}

}

}

返回DataSet

public static DataSet Query(string sqlstr, params OleDbParameter[] paras)

{

using(OleDbConnection conn=new OleDbConnection(CONNSTR))

{

try

{

DataSet ds = new DataSet();

OleDbCommand cmd = new OleDbCommand(sqlstr, conn);

cmd.Parameters.AddRange(paras);

OleDbDataAdapter da = new OleDbDataAdapter();

da.SelectCommand = cmd;

da.Fill(ds, "ds");

return ds;

}

catch (OleDbException e)

{

throw new Exception(e.Message);

}

}

}

public static DataSet Query(string sqlstr)

{

using(OleDbConnection conn=new OleDbConnection(CONNSTR))

{

try

{

DataSet ds = new DataSet();

OleDbCommand cmd = new OleDbCommand(sqlstr, conn);

OleDbDataAdapter da = new OleDbDataAdapter();

da.Fill(ds, "ds");

return ds;

}

catch (OleDbException e)

{

throw new Exception(e.Message);

}

}

}

执行多条SQL语句,实现数据库事务

public static void ExecuteSqlTran(ArrayList SQLStringList)

{

int fig=0;//用来判断是否执行成功

using (OleDbConnection conn = new OleDbConnection(CONNSTR))

{

conn.Open();

OleDbCommand cmd = new OleDbCommand();

cmd.Connection = conn;

OleDbTransaction tx = conn.BeginTransaction();

cmd.Transaction = tx;

try

{

for (int n = 0; n < SQLStringList.Count; n++)

{

string strsql = SQLStringList[n].ToString();

if (strsql.Trim().Length > 1)

{

cmd.CommandText = strsql;

if(cmd.ExecuteNonQuery()>0)

{

fig++;

}

}

}

tx.Commit();

}

catch (System.Data.OleDb.OleDbException E)

{

fig=-1;

tx.Rollback();

throw new Exception(E.Message);

}

}

}

其中SqlParameter[] paramters在返回范性集合的时候可以写参数或者没有参数也可以不写,但是返回dataTable或者DataSet的时候要写!

获得新增数据的id(access)

public void ExecuteSql(string cmdText, IDataParameter[] cmdParameters, out DataTable dt)

{

try

{

this._DbCommand.CommandText = cmdText;

foreach (IDataParameter parameter in cmdParameters)

{

this._DbCommand.Parameters.Add(parameter);

}

this._DbDataAdapter.SelectCommand = this._DbCommand;

DataSet dataSet = new DataSet();

this._DbDataAdapter.Fill(dataSet);

dt = dataSet.Tables[0];

}

catch (Exception exception)

{

this.CloseConnection();

throw new Exception(exception.Message);

}

}