天天看點

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的使用者名,和相應的密碼。

  平時運用的時候一旦初始化了一個連接配接對象,就可以調用SqlConnection對象的方法了,如:

SqlConnectStr.Open() '打開資料庫

SqlConnectStr.Close() '關閉資料庫

2.SqlCommand類:執行資料存儲的一個SQL指令

這個指令通常指增,删,改,查指令,執行的查詢可以含參數,也可以不含,雖然SqlCommand類的構造函數有很多吧,但是最簡單的一種還是不含參數的方法。下面是說如何初始化一個SqlCommand對象。

   當你初始化了對相關就可以設定需要的屬性和方法來執行任務了,下面介紹執行查詢前必須給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")

           
  以上是我對自己這部分知識的歸納,希望對正在學習這部分知識的朋友有所幫助!

繼續閱讀