這次做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")