SqlConnection,SqlDataAdapter,SqlCommand,SqlParameter

这次做vb.net版机房收费系统中常常使用这样一些类——SqlConnection,SqlDataAdapter,SqlCommand,SqlParameter,这些类都是SqlClient类,SqlClient类位于System.Data命名空间中,此命名空间在ADO.NET中也可以算的上是核心部分了,下面我就来分别介绍一下这几个常用类

 

1.SqlConnection类:提供了与SQL Server数据库的连接。

在构造SqlConnection对象时,可以把连接字符串指定为一个参数,连接字符串包含了打开数据库连接所需要的所有信息。下面是使用SqlConnection类初始化一个连接对象,可以连接SQL Server 数据库,该对象在连接字符串中分别使用了:计算机名:chenjinrong,数据库名:MychargeTwo,SQL Server的用户名,和相应的密码。

[html] view plaincopy

  1. <p style=”margin: 0in; font-family: Calibri; font-size: 10.5pt;”><span style=”font-size:18px;”><span lang=”zh-CN”>DimsqlConnectStr As SqlConnection = New SqlConnection(“server=</span><span lang=”en-US”>chenjinrong</span><span lang=”zh-CN”>;database=MychargeTwo;uid=sa;pwd=123456″)</span></span></p>

平时运用的时候一旦初始化了一个连接对象,就可以调用SqlConnection对象的方法了,如:

SqlConnectStr.Open() ‘打开数据库

SqlConnectStr.Close() ‘关闭数据库

 

2.SqlCommand类:执行数据存储的一个SQL命令

这个命令通常指增,删,改,查命令,执行的查询可以含参数,也可以不含,虽然SqlCommand类的构造函数有很多吧,但是最简单的一种还是不含参数的方法。下面是说如何初始化一个SqlCommand对象。

 

[html] view plaincopy

[html] view plaincopy

  1. <span style=”font-size:18px;”> Dim cmdd As SqlCommand =NewSqlCommand ()</span>

 

当你初始化了对相关就可以设置需要的属性和方法来执行任务了,下面介绍执行查询前必须给SqlCommand设置的一些属性

 

1.Connection属性

该属性被设置为一个SqlConnection对象,为了使命令执行成功,必须在执行命令时打开连接

          cmdd.Connection = sqlConnection1

2.CommandText属性

该属性指定要执行的SQL语句或存储过程

例如:

[html] view plaincopy

  1. <span style=”font-size:18px;”>Dim sqlConnectStr As SqlConnection = New SqlConnection(“server=chenjinrong;database=MychargeTwo;uid=sa;pwd=123456”)
  2. Dim cmdd AsSqlCommand =New SqlCommand ()
  3. cmdd.Connection= sqlConnection1
  4. Dim sql2 As String = “insert intoStuBasicInfo(CardNo,StuNo,StuName,StuSex,System,Status,Grade,Classs,Balance,Explain,UserName,RegDay,RegTime,IsCheckout)values(@TxtCardNo,@TxtStuNo,@TxtStuName,@CmbStuSex,@TxtSystem,@CmbStatus,@TxtGrade,@TxtClass,@TxtBalanced,@TxtExplain,@UserName,@Day,@Time,@IsCheckOut)”  ’@变量表示SQL语句中的占位符,需要用参数去填充
  5. cmdd.CommandText= sql2
  6. </span>

 

 

 

3.Parameters属性

该属性是用来访问SqlCommand对象的Parameter集合的,一旦访问了此集合,就可以利用它的属性和方法在集合中创建一个或多个参数了

 

我们在介绍CommandText属性的时候举得例子中,好多前缀为@的变量,这是SQL语句中的占位符,需要创建参数,在执行SQL语句的时候这些参数去向占位符插入值

 

例如:

[html] view plaincopy

  1. <span style=”font-size:18px;”>Dim sqlConnectStr As SqlConnection = New SqlConnection(“server=chenjinrong;database=MychargeTwo;uid=sa;pwd=123456”)
  2. Dim cmdd AsSqlCommand =New SqlCommand ()
  3. cmdd.Connection= sqlConnection1
  4. Dim sql2 As String = “insert intoStuBasicInfo(CardNo,StuNo,StuName,StuSex,System,Status,Grade,Classs,Balance,Explain,UserName,RegDay,RegTime,IsCheckout)values(@TxtCardNo,@TxtStuNo,@TxtStuName,@CmbStuSex,@TxtSystem,@CmbStatus,@TxtGrade,@TxtClass,@TxtBalanced,@TxtExplain,@UserName,@Day,@Time,@IsCheckOut)”  ’@变量表示SQL语句中的占位符,需要用参数去填充
  5.         cmdd.CommandText= sql2
  6. </span>
[html] view plaincopy

  1. <span style=”font-size:18px;”>’下面是填充上面的占位符的,创建参数,执行SQL语句的时候这些参数去向占位符插入值
  2.         cmdd.Parameters.Add(NewSqlParameter(“@TxtCardNo”, StuInfor.CardNo))
  3.         cmdd.Parameters.Add(NewSqlParameter(“@TxtStuNo”, StuInfor.StuNo))
  4. </span>            <span style=”font-size:18px;”>cmdd.Parameters.Add(NewSqlParameter(“@TxtStuName”, StuInfor.StuName))
  5.         cmdd.Parameters.Add(NewSqlParameter(“@CmbStuSex”, StuInfor.StuSex))
  6.         cmdd.Parameters.Add(NewSqlParameter(“@TxtSystem”, StuInfor.System))
  7.         cmdd.Parameters.Add(NewSqlParameter(“@CmbStatus”, StuInfor.Status))
  8.         cmdd.Parameters.Add(NewSqlParameter(“@TxtGrade”, StuInfor.Grade))
  9.         cmdd.Parameters.Add(NewSqlParameter(“@TxtClass”, StuInfor.Classs))
  10.         cmdd.Parameters.Add(NewSqlParameter(“@TxtBalanced”, StuInfor.Balance))
  11.         cmdd.Parameters.Add(NewSqlParameter(“@TxtExplain”, StuInfor.Explain))
  12.         cmdd.Parameters.Add(NewSqlParameter(“@UserName”, StuInfor.UserName))
  13.         cmdd.Parameters.Add(NewSqlParameter(“@Day”, StuInfor.RegDay))
  14. </span>
  15. <span style=”font-size:18px;”>        cmdd.Parameters.Add(NewSqlParameter(“@Time”, StuInfor.RegTime))
  16.         cmdd.Parameters.Add(NewSqlParameter(“@IsCheckOut”, StuInfor.IsCheckOut))
  17. </span>

4.ExecuteNonQuery 方法

此方法是用来执行SQL语句的

下面是向表StuBasicInfo中插入数据的完整代码

[html] view plaincopy

  1. <span style=”font-size:18px;”><span style=”font-size:18px;”>          </span></span>
[html] view plaincopy

  1. <span style=”font-size:18px;”><span style=”font-size:18px;”><span style=”font-size:18px;”>Dim sqlConnectStr As SqlConnection = New SqlConnection(“server=chenjinrong;database=MychargeTwo;uid=sa;pwd=123456”)Dim cmdd As SqlCommand =New SqlCommand ()cmdd.Connection = sqlConnection1Dim sql2 As String = “insert into StuBasicInfo (CardNo,StuNo,StuName,StuSex,System,Status,Grade,Classs,Balance,Explain,UserName,RegDay,RegTime,IsCheckout)values(@TxtCardNo,@TxtStuNo,@TxtStuName,@CmbStuSex,@TxtSystem,@CmbStatus,@TxtGrade,@TxtClass,@TxtBalanced,@TxtExplain,@UserName,@Day,@Time,@IsCheckOut)”  ’<span style=”background-color: rgb(240, 240, 240);”>@变量表示SQL语句中的占位符,需要用参数去填充</span></span>                                           cmdd.CommandText = sql2</span>                                                             ‘下面是填充上面的占位符的,创建参数,执行SQL语句的时候这些参数去向占位符插入值             </span><span style=”font-size:18px;”>cmdd.Parameters.Add(New SqlParameter(“@TxtCardNo”, StuInfor.CardNo))
  2.          cmdd.Parameters.Add(New SqlParameter(“@TxtStuNo”, StuInfor.StuNo))
  3.          cmdd.Parameters.Add(New SqlParameter(“@TxtStuName”, StuInfor.StuName))
  4.          cmdd.Parameters.Add(New SqlParameter(“@CmbStuSex”, StuInfor.StuSex))
  5.          cmdd.Parameters.Add(New SqlParameter(“@TxtSystem”, StuInfor.System))
  6.          cmdd.Parameters.Add(New SqlParameter(“@CmbStatus”, StuInfor.Status))
  7.          cmdd.Parameters.Add(New SqlParameter(“@TxtGrade”, StuInfor.Grade))
  8.          cmdd.Parameters.Add(New SqlParameter(“@TxtClass”, StuInfor.Classs))
  9.          cmdd.Parameters.Add(New SqlParameter(“@TxtBalanced”, StuInfor.Balance))
  10.          cmdd.Parameters.Add(New SqlParameter(“@TxtExplain”, StuInfor.Explain))
  11.          cmdd.Parameters.Add(New SqlParameter(“@UserName”, StuInfor.UserName))
  12.          cmdd.Parameters.Add(New SqlParameter(“@Day”, StuInfor.RegDay))
  13.          cmdd.Parameters.Add(New SqlParameter(“@Time”, StuInfor.RegTime))
  14.          cmdd.Parameters.Add(New SqlParameter(“@IsCheckOut”, StuInfor.IsCheckOut))
  15.          sqlConnection1.Open()  ‘打开连接
  16.          cmdd.ExecuteNonQuery() ‘执行SQL语句,并把数据插入到数据库中
  17.          sqlConnection1.Close()
  18. </span>

 

3.SqlDataAdapter类

像SqlCommand类一样,SqlDataAdapter类也有其相应的属性和方法

 

1.SelectCommand属性

该属性用于把SQL Server数据库中的数据填充到DataSet中,要从数据存储中读取数据,必须先设置SqlDataAdapter类的SelectCommand属性。该属性是一个SelectCommand对象,用来指定选取哪些数据和如何选取这些数据。为此SelectCommand也有其自己的属性

  • Connection:设置用来访问数据存储的SqlConnection对象
  • CommandText:设置用来选取数据的SQL语句或存储过程名称

下面是设置这些属性的代码

[html] view plaincopy

  1. <span style=”font-size:18px;”>Dim data As New SqlDataAdapter() ‘定义一个SqlDataAdapter变量            data.SelectCommand = New SqlCommand()
  2. data.SelectCommand.Connection = sqlConnection1 ‘把Connection属性设置为一个有效的连接对象
  3. data.SelectCommand.CommandText = “select CardNo,Status from StuBasicInfo order by StuInfo.CardNo,StuInfo.Status”
  4. </span>

 

2.Fill方法

此方法可以在DataSet对象中填充由SqlDataAdapter对象使用其SelectCommand从数据存储中检索到的数据

 

 

[html] view plaincopy

  1. <span style=”font-size:18px;”>Dim data As New SqlDataAdapter() ‘定义一个SqlDataAdapter变量            Dim das As DataSet = New DataSet()
  2. data.SelectCommand = New SqlCommand()
  3. data.SelectCommand.Connection = sqlConnection1 ‘把Connection属性设置为一个有效的连接对象
  4. data.SelectCommand.CommandText = “select CardNo,Status from StuBasicInfo order by StuInfo.CardNo,StuInfo.Status”
  5. data.Fill(das, “StuBasicInfo”)
  6. /span>

以上是我对自己这部分知识的归纳,希望对正在学习这部分知识的朋友有所帮助!

标签