菜鸟的数据库实战-4-数据阅读器SqlDataReader

2017-10-11 19:19:01来源:cnblogs.com作者:一点都不萌人点击

分享

  老铁们大家好啊,我是菜鸟思奎,今天我学习的是数据库和前端的连接用到的字符串,如果有什么纰漏希望大家在评论区指正。阿里嘎多。

  我的环境是Visual Studio 2008 + Microsoft SQL Server 2008 R2,通过C#的窗体应用来调试和展示相关的界面和数据。


   我这里练习的是数据阅读器SqlDataReader的使用。首先,我们需要准备一个数据库来练习。我直接用了下面的SQL语句生成一个简单的数据库了。其中建了一个表,并在其中插入了一行数据(点击展开)。

 1 --创建数据库; 2  3 USE master; 4 IF DB_ID('EduBaseDemo') IS NOT NULL 5     BEGIN 6         ALTER DATABASE EduBaseDemo 7             SET SINGLE_USER 8             WITH ROLLBACK IMMEDIATE; 9         DROP DATABASE EduBaseDemo;10     END11 CREATE DATABASE EduBaseDemo12     ON13         (NAME='Datafile'14         ,FILENAME='C:/DataFile.mdf')15     LOG ON16         (NAME='Logfile'17         ,FILENAME='C:/Logfile.ldf');18 GO19 20 USE EduBaseDemo;21 22 --创建表;23 ----学生表;    24 25 CREATE TABLE tb_Student26     (No27         CHAR(10)28         NOT NULL29         PRIMARY KEY30     ,Name31         VARCHAR(20)32         NOT NULL33     ,Gender34         CHAR(2)35         NOT NULL36     ,BirthDate37         DATE38         NOT NULL39     ,Class40         VARCHAR(50)41         NOT NULL42     ,Speciality43         VARCHAR(100)44         NULL);45 46 INSERT tb_Student47     (No,Name,Gender,BirthDate,Class,Speciality)48     VALUES49     ('3120707001','田永申','男','1991-10-15','12信管','睡觉');
建立简单数据库、建表并插入一行数据

  然后再建立一个简单的Windows窗体来演示一下,就像这样:

  很显然,这里就需要用到前端和数据库的连接了,所以加上相应的命名空间:

1 using System.Data.SqlClient; 

  在“载入”按钮的Click事件中先加入以下代码:

1 SqlConnection sqlConnection = new SqlConnection();                                                  //声明并实例化SQL连接;2     sqlConnection.ConnectionString ="Server=(local);Database=EduBaseDemo;Integrated Security=sspi"; //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证);3     SqlCommand sqlCommand = new SqlCommand();                                                       //声明并实例化SQL命令;4     sqlCommand.Connection = sqlConnection;                                                          //将SQL命令的连接属性指向SQL连接;5     sqlCommand.CommandText = "SELECT * FROM tb_Student WHERE No=@No;";                              //指定SQL命令的命令文本;6     sqlCommand.Parameters.AddWithValue("@No", "3120707001");                                        //向SQL命令的参数集合添加参数的名称、值;7     sqlConnection.Open();                                  

  这里就是直接定义字符串sqlCommand查询'No'字段是‘3120707001’的信息,然后打开数据库连接。然后重头戏就来了,现在我们就可以用SqlDataReader来读取数据了。SqlDataReader的使用方法其实非常简单,只要用一行代码就可以完成数据的“读”操作,也就是调用SQL命令的方法ExecuteReader来执行命令,并获取数据阅读器;

1 SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); 

  但是现在我们不知道到底它读的操作成功没有,更重要的是读了数据我们要拿来用o(╯□╰)o。我需要的只是读取了然后载入到我的UI的框里显示出来,所以,可以用一个if来判断是否成功读取,如果成功的话就把数据放到对应的控件中去:

1 if (sqlDataReader.Read())                                                                      //若数据阅读器成功读取到下一条记录(首次查询则表示第一条记录);2     {3         this.txb_No.Text = sqlDataReader["No"].ToString();                                  //在数据阅读器的索引器中指定列名,从而访问当前记录的指定列的值,并赋予相应控件;4         this.txb_Name.Text = sqlDataReader["Name"].ToString();5         this.txb_Gender.Text = sqlDataReader["Gender"].ToString();6         this.txb_BirthDate.Text = ((DateTime)sqlDataReader["BirthDate"]).ToShortDateString(); //生日首先转换为日期时间类型,再调用ToShortDateString方法获取日期部分;7         this.txb_Class.Text = sqlDataReader["Class"].ToString();8         this.txb_Speciality.Text = sqlDataReader["Speciality"].ToString();9     }

  SqlDataReader控件读取到的数据都是万能的Object格式,但是我们是没办法直接用的,所以就需要进行数据格式的转换,我这里统一用了.ToString转换成String格式(主要是省事)。凡事都有例外,BirthDate这条就是这样。在数据库中我定义的是Date,但是呢,在C#里面是没有Date这种数据类型的,这种情况下就要把它转换成类似的DateTime数据类型,然后再用ToShortString方法来获取前面的日期部分再转换成String才可以。

  当然了,作为一个(有点?)严谨的编程语言,打开了SqlDataReader以后还是要用一句话关掉它的,不然就是耍流氓了~

1 sqlDataReader1.Close();

  完美了老铁们,现在我们离出任CEO、迎娶白富美、走上人生巅峰只差临门一脚了——程序写完了要调试的吧,调试下看看就可以知道这波有没有问题了。昂…JUST DO IT!

  呐,运行一下像这样嘛

  数据都还在对吧,简直就是完美对吧,SqlDateReader的简单使用就这样啦(*^▽^*)


   今天的实战到这里就结束了,老铁们有什么问题就这直接评论讨论下?

  么么哒(づ ̄ 3 ̄)づ

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台