阅读器、更新、图片

SqlDataReader:

一、sqlDataReder对象,可以从数据库中检索只读的数据,它每次从查询结果中读取一行到内存。

采用sqlDataReder的Read方法行读取数据,如果读到记录就返回true,否则返回false。

如图:一个显示学生信息的界面:

在建立相应SQL连接后,

1、调用SQL命令的方法ExecuteReader来执行命令,并获取数据阅读器:

SqlDataReader.sqlDataReader=sqlCommand.ExecuteReader(); 

2、若数据阅读器成功读取到下一条记录(首次查询则表示第一条记录)

if(sqlDataReader.Read())

3、在数据阅读器的索引器中指定列名,从而访问当前记录的指定列的值,并赋予相应控件

sqlDataReader["No"].ToString();   

4、 当提取的数据涉及时间时,先使用DataTime强制装换成时间类型,再通过toShortDateString()获取日期的部分。
代码整合如下:                    

if(sqlDataReader.Read())  {

          this.txb_No.Text=sqlDataReader["No"].ToString();      

          this.txb_Name.Text = sqlDataReader["Name"].ToString();

          this.txb_Gender.Text = sqlDataReader["Gender"].ToString();

          this.txb_BirthDate.Text (DateTime)sqlDataReader["BirthDate"]).ToShortDateString();      

          this.txb_Class.Text = sqlDataReader["Class"].ToString();

          this.txb_Speciality.Text = sqlDataReader["Speciality"].ToString();

 }

 

2、 当对上图的进行改进:
建立SQL连接后,定义sqlcommand1、sqlcommand2,并进行实例化;
Sqlcommand1.CommandText=SELECT * FROM tb_class;;
Sqlcommand2.CommandText=SELECT * FROM tb_Student WHERE No=@No;;
声明SQL数据适配器,借助构造函数,将其SelectCommand属性设为先前创建的SQL命令。
SqlDataAdapter sqldataadapter=new SqlDataadapter();
Sqldataadapter.SelectCommand=sqlcommand1;  
声明实例化数据表,用于保存所有班级,以用作下拉框的数据源。
DataTable classTable = new DataTable();
Sql数据适配器读取数据,并填充班级数据表
sqlDataAdapter.Fill(classTable);
将班级下拉框的数据源设为班级数据表,显示成员设为数据表的名称列,值成员设为班级数据表的编号列;
this.cmb_Class.DataSource = classTable;  
this.cmb_Class.DisplayMember = "Name";
this.cmb_Class.ValueMember = "No";
性别的单选按钮,“Gender"的值以0、1表示女、男,并将读到的值转成布尔类型。
this.rdb_Male.Checked = (bool)sqlDataReader["Gender"];
this.rdb_Female.Checked = !(bool)sqlDataReader["Gender"];
3、 更新功能
 
在建立数据库连接后,命令语句采用更新SQL语句:
sqlCommand.CommandText="UPDATE​tb_Student”+"SETName=@Name,Gender=@Gender,BirthDate=@BirthDate,ClassNo=@ClassNo,Speciality=@Speciality"+" WHERE No=@No;";
并对参数进行赋值。
调用SQL命令的方法ExcuteNonQuery来执行命令,向数据库写入数据,并返回受影响的行数。
int rowAffected = sqlCommand.ExecuteNonQuery();
在消息框显示受影响的行。
MessageBox.Show("更新" + rowAffected.ToString() + "行。"); 
4、 显示图片
                                   /
在“打开照片”按钮中:
先声明并实例化一个打开文件的对话框,并设置文件的对话框标题(Title )、文件格式过滤器(Filter )、初始目录( InitialDirectory )。
OpenFileDialog openPhotoDialog = new OpenFileDialog() 
{
Title = "打开照片文件(位图格式)"
, Filter = "BMP Files (*.bmp)|*.bmp"
, InitialDirectory = @"C:\"
}
显示打开文件对话框,若打开文件对话框的对话结果为点击OK键,将对话框获得的文件名,存入本窗体的私有字段中,调用图像的静态方法FromFile从指定文件中读取图像,并赋予图像框;
if (openPhotoDialog.ShowDialog() == DialogResult.OK) 
{
this.PhotoFileName = openPhotoDialog.FileName;
this.ptb_Photo.Image = Image.FromFile(this.PhotoFileName);
}
 
 
 
posted @ 2017-10-22 01:13  奔跑吧菜鸟  阅读(110)  评论(0编辑  收藏  举报