在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
使用控件,能够方便开发人员的开发和使用,但是很多情况下,不能使用控件来实现,所以很多情况都需要使用ADO.NET操作数据库中的数据,SQLHelper是将ADO.NET中对数据操作的类和对象进行的封装的一个类库,使用SQLHelper能够提高数据库操作的效率。 1.创建SQLHelper SQLHelper类经常在数据库开发中使用,不仅封装了数据库操作,也提高了数据库操作的安全性,SQLHelper在微软的开发中和DEMO中经常被使用,SQLHelper通常用于多层设计,如果需要使用SQLHelper类,可以到微软官方下载最新的SQLHelper类,也可以自行编写SQLHelper类。如果自行创建SQLHelper类,则在解决方案管理器中新建一个类库,创建类库后,删除自动生成的Class1类,并创建一个新类,类名为SQLHelper. 如果使用下载的SQLHelper类,则可以单击解决方案管理器,单击右键,选择添加现有项,然后选择现有项目添加即可。在SQLHelper类下对数据操作进行封装,开发人员能够使用自己封装的类进行数据操作,示例代码如下所示 #region //数据库连接串 private static readonly string database = “数据库”; //配置数据库信息 private static readonly string uid = “用户名”; //配置用户名信息 private static readonly string pwd = “密码”; //配置密码信息 private static readonly string server = “服务器”; //配置服务器信息 private static readonly string condb = "server='"+ server +"';database='" + database + "';uid= '" + uid + "';pwd='" + pwd + "';Max Pool Size=100000;Min Pool Size=0; Connection Lifetime=0;packet size=32767;Connection Reset=false; async=true"; //设置连接字串 #endregion #region//DataAdapter方法 返回DataSet数据集 /// <summary> /// DataAdapter方法 返回DataSet数据集 /// </summary> /// <param name="sqlCmd">SQL语句</param> /// <param name="command">操作参数 枚举类型</param> /// <returns></returns> public static DataSet DataAdapter(string sqlCmd, SDACmd command, //实现适配器 string tabName, params SqlParameter[] paraList) { SqlConnection con = new SqlConnection(condb); //创建连接对象 SqlCommand cmd = new SqlCommand(); //创建Command对象 cmd.Connection = con; //使用连接对象 cmd.CommandText = sqlCmd; //配置连接字串 if (paraList != null) { cmd.CommandType = CommandType.Text; //配置Command类型 foreach (SqlParameter para in paraList) //遍历参数 { cmd.Parameters.Add(para); } //添加参数 } SqlDataAdapter sda = new SqlDataAdapter(); //创建适配器 switch (command) //查找条件 { case SDACmd.select: //如果为select执行 sda.SelectCommand = cmd; break; case SDACmd.insert: //如果为insert执行 sda.InsertCommand = cmd; break; case SDACmd.update: //如果为update执行 sda.UpdateCommand = cmd; break; case SDACmd.delete: //如果为delete执行 sda.DeleteCommand = cmd; break; } DataSet ds = new DataSet(); //创建数据集 sda.Fill(ds, tabName); //填充数据集 return ds; //返回数据集 } 在上述代码中,还需要通过一个枚举类型进行switch操作,枚举类型用于判断执行的操作,示例代码如下所示。 public enum SDACmd { select, delete, update, insert } //定义枚举类型 定义的枚举类型用于在程序中进行筛选操作,用于指定SQL语句执行的操作。在SQLHelper类中,还需要封装DataReader方法进行DataReader的封装和实现,开发人员能够使用SQLHelper类中的DataReader方法进行数据库的读取,示例代码如下所示。 public static SqlDataReader ExecReader(string sqlcmd, params SqlParameter[] paraList) { SqlConnection con = new SqlConnection(condb); //创建连接对象 SqlCommand cmd = new SqlCommand(); //创建Command对象 cmd.Connection = con; //使用连接 cmd.CommandText = sqlcmd; //配置SQL语句 if (paraList != null) { cmd.CommandType = CommandType.Text; //配置Command类型 foreach (SqlParameter para in paraList) { cmd.Parameters.Add(para); } //添加参数 } con.Open(); //打开连接 SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); return sdr; } 上述代码实现了DataReader对象,使用DataReader能够填充SqlDataReader对象并进行数据的循环输出。在ADO.NET中,通常需要执行SQL语句进行数据库的操作,在SQLHelper类中,同样需要封装执行SQL语句的操作以便能够快速执行数据操作。 public static void ExecNonQuery(string sqlcmd, params SqlParameter[] paraList) { using (SqlConnection con = new SqlConnection(condb)) //创建连接对象 { SqlCommand cmd = new SqlCommand(); //创建Command对象 cmd.Connection = con; //使用连接 cmd.CommandText = sqlcmd; //配置执行类型 if (paraList != null) { cmd.CommandType = CommandType.Text; //配置执行类型 foreach (SqlParameter para in paraList) { cmd.Parameters.Add(para); } //添加参数 } con.Open(); //打开数据连接 cmd.ExecuteNonQuery(); //执行SQL语句 } } 上述代码编写了SQLHelper类操作数据库的函数,通过执行函数并传递参数,即可实现数据库的插入、更新和删除。 2.使用SQLHelper 创建完成SQLHelper类后,需要为应用程序配置SQLHelper的基本属性,代码如下所示。 private static readonly string database = "mytable"; //配置数据库 private static readonly string uid = "sa"; //配置用户名 private static readonly string pwd ="sa"; //配置用户会密码 private static readonly string server = "local"; //配置服务器的值 上述代码为SQLHelper类配置了属性,当使用SQLHelper类时,系统会自动连接数据库,在完成使用后,系统会自动关闭数据库。如果需要在当前项目使用SQLHelper类,则需要添加引用来使用SQLHelper类,右击现有项目,在下拉菜单中选择【添加】选项,在【添加】选项中选择【现有项】选项,在弹出窗口中选择【项目】标签栏,就可以添加相同项目的类库 引用添加完毕,在使用SQLHelper页面的CS页面中,需要添加命名空间,命名空间的名称和创建类库的名称相同,如果需要更改名称,可以通过修改类库的属性来修改。示例代码如下所示。 using MYSQL; 引用完毕后,就可以执行SQL语句,使用SQLHelper执行SQL语句非常方便,下面代码演示了如何执行插入、删除操作。 string strsql = "insert into mynews values ('SQLHelper插入标题')"; //编写SQL语句 SQLHelper.ExecNonQuery(strsql); //执行SQL语句 上述代码运行后,则会执行插入操作,相比于ADO.NET,封装后的代码更加简便易懂,删除操作代码如下所示。 string strsql2 = "delete form mynews where id=3"; //编写SQL语句 SQLHelper.ExecNonQuery(strsql2); //执行SQL语句 当需要执行SELECT语句时,可以通过SQLHelper.DataAdapter获取数据,示例代码如下所示。 string strsql = "select * from mynews where id=3"; //编写SQL语句 DataSet ds = SQLHelper.DataAdapter(strsql, SQLHelper.SDACmd.select, "mydatatable"); 上述代码通过SQLHelper.DataAdapter获取数据,并创建了一个mydatatable虚拟表,填充DataSet对象。当需要获取DataSet对象中的数据时,和普通的DataSet对象一样。SQLHelper封装了ADO.NET中的许多方法,为开发人员提高了效率,同时也增加了安全性和模块化的特性。 注意:上述代码中的SQLHelper类能够执行的是SQL语句,如果需要执行存储过程,则需要更改SQLHelper类中的相应的CommandType属性的值。 |
请发表评论