
课程2上课日志3
5页课程2上课日志3一、复习、为实例2-1实现添加修改功能之展示要修改的数据思考:更新页面的ID标签及相关代码是否可以不要?二、为实例2-1实现修改数据功能代码编写三、为实例2-1实现删除数据功能四、SqlHelper工具类的使用过程(以Lesson2项目——实例2-1为例说明) 1、添加数据库连接字符串提取“公因式”,放到哪? web.config App.config
右击项目---添加---新建项----应用程序配置文件八、添加工具类文件SqlHelper.cs及相关引用配置1、添加引用System.Configuration;2、引入命名控件 using System.Configuration;3、修改SqlHelper类为公共的、静态的public static class SqlHelper4、获取连接字符串九、为工具类文件SqlHelper.cs添加执行增删改方法ExecuteNonQuery(sql,pms)1、using(){}使用可以在数据库连接对象使用完后自动销毁换句话说,就是使用using关键字定义一个范围,在范围结束时自动调用这个类实例的Dispose处理(释放非托管资源),不足之处:会造成频繁的连接关闭数据库,一般WinForm项目使用 public static int ExecuteNonQuery(string sql, params SqlParameter[] pms) { using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd = new SqlCommand(sql,con)) { if (pms != null) { cmd.Parameters.AddRange(pms); } con.Close(); return cmd.ExecuteNonQuery(); } } }提问:params关键字的作用?2、思考:与command对象内部方法ExecuteNonQuery()区别。
十、为SqlHelper.cs添加执行返回单个值、返回SqlDataReader及返回DataTable方法//执行返回单个值的 public static object ExecuteScalar(string sql, params SqlParameter[] pms) { using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd = new SqlCommand(sql, con)) { if (pms != null) { cmd.Parameters.AddRange(pms); } con.Open(); return cmd.ExecuteScalar(); } } }提问:这里返回值类型为什么用object类型? //执行返回SqlDataReader public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] pms) { //创建链接对象 SqlConnection con = new SqlConnection(constr); //创建执行命令对象 using (SqlCommand cmd = new SqlCommand(sql, con)) { if (pms != null) { cmd.Parameters.AddRange(pms); } try { //打开链接 con.Open(); //指定操作 return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);//关闭了DataReader对象时,则关联的Connection对象也关闭。
} //报异常时关闭数据库销毁对象 catch (Exception) { con.Close(); con.Dispose(); throw; } } } //返回DataTable public static DataTable ExecuteDataTable(string sql, params SqlParameter[] pms) { //创建本地数据库对象 DataTable dt = new DataTable(); //创建适配器对象 using (SqlDataAdapter adapter = new SqlDataAdapter(sql, constr)) { if (pms != null) { adapter.SelectCommand.Parameters.AddRange(pms); // adapter.InsertCommand// adapter.UpdateCommand// adapter.DeleteCommand } //读取数据填充到本地数据库对象中 adapter.Fill(dt); } return dt; }讨论题:为配置文件添加连接字符串的优势是什么?如何添加及使用配置文件中的连接字符串?作业:1、为实例2-1配置文件添加连接字符串,并且把该实例中连接字符串都通过该连接字符串来实现2、通过DataReader获取数据库字段的数据时,char类型数据可以通过DataReader.GetString(N)来获取,int类型数据可以通过DataReader.GetInt32(N)来获取,N为数据库表中字段顺序号,那么数据库字段类型为float类型,如何获取?3、预习完实例2-24、编写一个能实现对数据库操作的工具类,该类中包含查询单个数据的方法、返回 SqlDataReader类型的方法、返回执行影响行数的方法以及返回 DataSet 类型的数据集的方法。
直接用记事本写或者通过vs平台写,然后把代码复制到记事本文件中,记事本文件名为学号后2位数加姓名)以上第4项10月18日(周三)之前通过蓝墨云班课电脑端上交主要知识点:修改、删除数据、SqlHelper工具类的使用及执行增删改方法及执行返回单个值、返回SqlDataReader及返回DataTable方法、SqlParameter参数化替换(防止注入式攻击)。