第六周学习笔记
4.1数据阅读器
数据阅读器用来读取前端数据库里的数据,用数据阅读器读取一整行的记录
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
将读取到的各数据转换成字符串才能被文本框所接收。
索引器返回的是object类型的值,用Tostring()装换成文本框可接收的数值类型,
由于C#中没有单纯读取日期的字符,所以选择与时间类型最符合的字符“DateTime”,采用强制转换,并截取所需的日期而不需时间。如下:
this.txb_BirthDate.Text = ((DateTime)sqlDataReader["BirthDate"]).ToShortDateString();
4.2优化读取的数据
(1) 生日改用日历(使用datatimepicker)
先创建一张班级表分配给下拉菜单,并且将学生表的classno类型改为INT,学生表的gender改成BIT类型
声明数据适配器SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
开始存表DataTable classTable = new DataTable();
sqlDataAdapter.Fill(classTable);
将表的内容送到下拉框并实现自动匹配(代码如下)
声明数据适配器SqlDataAdapter sqlDataAdapter = new SqlDataAdapter();
存表DataTable classTable = new DataTable();
sqlDataAdapter.Fill(classTable);
this.cmb_Class.ValueMember = "No"; 实现了下拉框的自动匹配
this.cmb_Class.DisplayMember = "Name";表示了下拉框中指定显示表格的字段
4.3更新记录
班级改成下拉框并且实现自动匹配,性别改用单选按钮
将班级表改为编号形式,当需要修改时方便很多,如下:
设置两个命令对象:
SqlCommand sqlCommand = new SqlCommand();
SqlCommand sqlCommand2 = new SqlCommand();
其中一个用来读取班级信息。
(1)实现一个记录的多个值修改
声明实例化SQL命令
在update语句中将所有的字段参数化添加。用ExecuteNonQuery来执行命令,向数据库写入数据,并用消息框提示是否更改成功。
4.4打开照片并将其更新到数据库中
先在学生表添加一个新的列photo,类型为VARBINARY(MAX)
将打开对话框文件实例化,包括默认的位置和制定的文件类型为bmp
用对话框获得文件名,在控件上显示图片
5.1一次性读取多条学生记录
使用DateGridView控件显示:
5.2批量修改并保存到数据库,修改包括插入、删除、新增三种类型
要用DataAdapter灵活调用以上三种命令,如:sqlDataAdapter.InsertCommand = insertCommand;具体代码如下: