这次做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")
以上是我对自己这部分知识的归纳,希望对正在学习这部分知识的朋友有所帮助!