博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个自定义的C#数据库操作基础类 SqlHelper
阅读量:4693 次
发布时间:2019-06-09

本文共 4209 字,大约阅读时间需要 14 分钟。

SqlHelper其实是我们自己编写的一个类,使用这个类目的就是让使用者更方便、更安全的对数据库的操作,既

是除了在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);          }            ///           /// 状态          ///           /// 
SqlConnection
private SqlConnection GetConn() { if (Conn.State == ConnectionState.Closed) { Conn.Open(); } return Conn; } /// /// 执行不带参数的增删改操作 /// /// 执行的SQL语句或存储过程 /// 类型 ///
增删改的操作数
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; } /// /// 执行带参数的增删改操作 /// /// 执行的SQL语句或存储过程 /// 参数 /// 类型(SQL语句或存储过程) ///
增删改的操作数
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; } /// /// 不带参数的查询 /// /// 执行的SQL语句或存储过程 /// 类型 ///
查询的数据
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; } /// /// 带参数的查询 /// /// SQL语句或存储过程 /// 参数 /// 类型 ///
查询的数据
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中释放资源。

posted on
2015-05-18 01:15  阅读(
...) 评论(
...) 收藏

转载于:https://www.cnblogs.com/wordgao/p/4510961.html

你可能感兴趣的文章