现在的位置: 首页 > 综合 > 正文

SqlConnection,SqlDataAdapter,SqlCommand,SqlParameter

2012年09月08日 ⁄ 综合 ⁄ 共 5780字 ⁄ 字号 评论关闭

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

 

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

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

DimsqlConnectStr As SqlConnection = New SqlConnection("server=chenjinrong;database=MychargeTwo;uid=sa;pwd=123456")

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

SqlConnectStr.Open() '打开数据库

SqlConnectStr.Close() '关闭数据库

 

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

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

 

 
      Dim cmdd As SqlCommand =NewSqlCommand ()

 

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

 

1.Connection属性

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

 

          cmdd.Connection = sqlConnection1

 

2.CommandText属性

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

例如:

                 

Dim sqlConnectStr As SqlConnection = New SqlConnection("server=chenjinrong;database=MychargeTwo;uid=sa;pwd=123456")

Dim cmdd AsSqlCommand =New SqlCommand ()

cmdd.Connection= sqlConnection1

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语句中的占位符,需要用参数去填充
cmdd.CommandText= sql2

    

3.Parameters属性

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

 

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

 

例如:

Dim sqlConnectStr As SqlConnection = New SqlConnection("server=chenjinrong;database=MychargeTwo;uid=sa;pwd=123456")

Dim cmdd AsSqlCommand =New SqlCommand ()

cmdd.Connection= sqlConnection1

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语句中的占位符,需要用参数去填充
        cmdd.CommandText= sql2
'下面是填充上面的占位符的,创建参数,执行SQL语句的时候这些参数去向占位符插入值
        cmdd.Parameters.Add(NewSqlParameter("@TxtCardNo", StuInfor.CardNo))

        cmdd.Parameters.Add(NewSqlParameter("@TxtStuNo", StuInfor.StuNo))

            cmdd.Parameters.Add(NewSqlParameter("@TxtStuName", StuInfor.StuName))

        cmdd.Parameters.Add(NewSqlParameter("@CmbStuSex", StuInfor.StuSex))

        cmdd.Parameters.Add(NewSqlParameter("@TxtSystem", StuInfor.System))

        cmdd.Parameters.Add(NewSqlParameter("@CmbStatus", StuInfor.Status))

        cmdd.Parameters.Add(NewSqlParameter("@TxtGrade", StuInfor.Grade))

        cmdd.Parameters.Add(NewSqlParameter("@TxtClass", StuInfor.Classs))

        cmdd.Parameters.Add(NewSqlParameter("@TxtBalanced", StuInfor.Balance))

        cmdd.Parameters.Add(NewSqlParameter("@TxtExplain", StuInfor.Explain))

        cmdd.Parameters.Add(NewSqlParameter("@UserName", StuInfor.UserName))

        cmdd.Parameters.Add(NewSqlParameter("@Day", StuInfor.RegDay))

        cmdd.Parameters.Add(NewSqlParameter("@Time", StuInfor.RegTime))

        cmdd.Parameters.Add(NewSqlParameter("@IsCheckOut", StuInfor.IsCheckOut))

 4.ExecuteNonQuery 方法

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

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

          
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)"  ’@变量表示SQL语句中的占位符,需要用参数去填充                                           cmdd.CommandText = sql2                                                             '下面是填充上面的占位符的,创建参数,执行SQL语句的时候这些参数去向占位符插入值             cmdd.Parameters.Add(New SqlParameter("@TxtCardNo", StuInfor.CardNo))
	     cmdd.Parameters.Add(New SqlParameter("@TxtStuNo", StuInfor.StuNo))
	     cmdd.Parameters.Add(New SqlParameter("@TxtStuName", StuInfor.StuName))
	     cmdd.Parameters.Add(New SqlParameter("@CmbStuSex", StuInfor.StuSex))
	     cmdd.Parameters.Add(New SqlParameter("@TxtSystem", StuInfor.System))
	     cmdd.Parameters.Add(New SqlParameter("@CmbStatus", StuInfor.Status))
	     cmdd.Parameters.Add(New SqlParameter("@TxtGrade", StuInfor.Grade))
	     cmdd.Parameters.Add(New SqlParameter("@TxtClass", StuInfor.Classs))
	     cmdd.Parameters.Add(New SqlParameter("@TxtBalanced", StuInfor.Balance))
	     cmdd.Parameters.Add(New SqlParameter("@TxtExplain", StuInfor.Explain))
	     cmdd.Parameters.Add(New SqlParameter("@UserName", StuInfor.UserName))
	     cmdd.Parameters.Add(New SqlParameter("@Day", StuInfor.RegDay))
	     cmdd.Parameters.Add(New SqlParameter("@Time", StuInfor.RegTime))
	     cmdd.Parameters.Add(New SqlParameter("@IsCheckOut", StuInfor.IsCheckOut))
	     sqlConnection1.Open()  '打开连接
	     cmdd.ExecuteNonQuery() '执行SQL语句,并把数据插入到数据库中
	     sqlConnection1.Close()

3.SqlDataAdapter类

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

 

1.SelectCommand属性

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

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

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

Dim data As New SqlDataAdapter() '定义一个SqlDataAdapter变量	        data.SelectCommand = New SqlCommand()
data.SelectCommand.Connection = sqlConnection1 '把Connection属性设置为一个有效的连接对象
data.SelectCommand.CommandText = "select CardNo,Status from StuBasicInfo order by StuInfo.CardNo,StuInfo.Status"

 

2.Fill方法

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

 

 Dim data As New SqlDataAdapter() '定义一个SqlDataAdapter变量	        Dim das As DataSet = New DataSet()
 data.SelectCommand = New SqlCommand()
 data.SelectCommand.Connection = sqlConnection1 '把Connection属性设置为一个有效的连接对象
 data.SelectCommand.CommandText = "select CardNo,Status from StuBasicInfo order by StuInfo.CardNo,StuInfo.Status"
 data.Fill(das, "StuBasicInfo")

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

抱歉!评论已关闭.