码迷,mamicode.com
首页 > 其他好文 > 详细

阅读器、更新、图片

时间:2017-10-22 11:14:44      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:dial   声明   comm   query   select   time   box   连接   tar   

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);
}
 
 
 

阅读器、更新、图片

标签:dial   声明   comm   query   select   time   box   连接   tar   

原文地址:http://www.cnblogs.com/yyyz516/p/7707555.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!