好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

一个自定义的C#数据库操作基础类 SqlHelper

public class SQLHelper { private string strConn = null ; private SqlConnection Conn = null ; private SqlCommand Cmd = null ; private SqlDataReader Sqlsdr = null ; public SQLHelper() { // 利用反射连接数据库 strConn = ConfigurationManager.ConnectionStrings[ " strConn " ].ConnectionString; // strConn = "data source=192.168.24.83;initial catalog=NewsSystem;user id=sa;password=123456"; Conn = new SqlConnection(strConn); } /// <summary> /// 状态 /// </summary> /// <returns> SqlConnection </returns> private SqlConnection GetConn() { if (Conn.State == ConnectionState.Closed) { Conn.Open(); } return Conn; } /// <summary> /// 执行不带参数的增删改操作 /// </summary> /// <param name="CmdText"> 执行的SQL语句或存储过程 </param> /// <param name="CmdType"> 类型 </param> /// <returns> 增删改的操作数 </returns> public int ExecuteNonQuery( string CmdText, CommandType CmdType) { // 数据库连接语句 int res; try { Cmd = new SqlCommand(CmdText, GetConn()); Cmd.CommandType = CmdType; res = Cmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { if (Conn.State == ConnectionState.Open) { Conn.Close(); } } return res; } /// <summary> /// 执行带参数的增删改操作 /// </summary> /// <param name="CmdText"> 执行的SQL语句或存储过程 </param> /// <param name="Parameters"> 参数 </param> /// <param name="CmdType"> 类型(SQL语句或存储过程) </param> /// <returns> 增删改的操作数 </returns> public int ExecuteNonQuery( string CmdText, SqlParameter[] Parameters, CommandType CmdType) { int res; try { Cmd.Parameters.AddRange(Parameters); Cmd = new SqlCommand(CmdText, GetConn()); Cmd.CommandType = CmdType; res = Cmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { if (Conn.State == ConnectionState.Open) { Conn.Close(); } } return res; } /// <summary> /// 不带参数的查询 /// </summary> /// <param name="CmdText"> 执行的SQL语句或存储过程 </param> /// <param name="CmdType"> 类型 </param> /// <returns> 查询的数据 </returns> public DataTable ExecuteQuery( string CmdText, CommandType CmdType) { DataTable dt = new DataTable(); using (Sqlsdr = Cmd.ExecuteReader(CommandBehavior.CloseConnection)) { Cmd = new SqlCommand(CmdText, GetConn()); Cmd.CommandType = CmdType; dt.Load(Sqlsdr); } return dt; } /// <summary> /// 带参数的查询 /// </summary> /// <param name="CmdText"> SQL语句或存储过程 </param> /// <param name="Parameters"> 参数 </param> /// <param name="CmdType"> 类型 </param> /// <returns> 查询的数据 </returns> public DataTable ExecuteQuery( string CmdText, SqlParameter[] Parameters, CommandType CmdType) { DataTable dt = new DataTable(); using (Sqlsdr = Cmd.ExecuteReader(CommandBehavior.CloseConnection)) { Cmd = new SqlCommand(CmdText, GetConn()); Cmd.CommandType = CmdType; Cmd.Parameters.AddRange(Parameters); dt.Load(Sqlsdr); } return dt; } } } // 该代码片段来自于: http://www.sharejs.com/codes/csharp/8134

主要运用ExecuteQuery和ExecuteNonQuery方法实现四中不同的访问数据库方式。

使用Using和Try-----Catch-----Finally

Using:

       作用一:作为指令,用于为命名空间创建别名或导入其他命名空中定义的类型。

       作用二:作为语句,用于定义一个范围,在借宿后将隐式调用disposable方法释放资源,如同上例。

Try-----Catch-----Finally:

       在Try中获取并使用资源,Catch中处理异常情况,Finally中释放资源。

一个自定义的C#数据库操作基础类 SqlHelper

标签:

查看更多关于一个自定义的C#数据库操作基础类 SqlHelper的详细内容...

  阅读:24次