这次做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")
以上是我对自己这部分知识的归纳,希望对正在学习这部分知识的朋友有所帮助!
分享到:
相关推荐
自己常用的C# Database 类。包括 SqlConnection,SqlCommand,SqlDataReader 的使用
一般来说,在更新DataTable或是DataSet时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有单引号,程序就会发生错误,并且他人可以轻易地通过拼接Sql语句来进行注入攻击。 string sql =...
SqlParameter parameterBookID = new SqlParameter("@BookID", SqlDbType.Int, 4); parameterBookID.Value = bookID; myCommand.Parameters.Add(parameterBookID); SqlParameter parameterCartID = new...
private SqlDataAdapter CreateDataAdapter(string procName, SqlParameter[] prams) //将参数添加到SqlDataAdapter当中 { this.Open(); SqlDataAdapter dap = new SqlDataAdapter(procName, con); dap....
public static int ExecuteCommand(string sql, params SqlParameter[] values) { SqlCommand cmd = new SqlCommand(sql, Connection); cmd.Parameters.AddRange(values); return cmd.ExecuteNonQuery(); } ...
public static bool Exists(string strSql, params SqlParameter[] cmdParms) { object obj = GetSingle(strSql, cmdParms); int cmdresult; if ((Object.Equals(obj, null)) || (Object.Equals(obj, System....
SqlCommand cmd = new SqlCommand(sql, conn); SqlParameter xuhao = new SqlParameter("@in_xuhao", SqlDbType.Int); xuhao.Direction = ParameterDirection.Input; xuhao.Value = textBox1.Text.Trim(); cmd....
SqlParameter[] pr ={new SqlParameter("@name",SqlDbType.VarChar,50) ,new SqlParameter("@pwd",SqlDbType.VarChar,50)}; pr[0].Value = name; pr[1].Value = pwd; using (SqlConnection con = new ...
用C#和SQLserver数据库制作的学生成绩管理系统,不足之处请多指教
主要介绍了C#使用SqlConnection连接到SQL Server的代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
params SqlParameter[] parameters) { //创建连接对象 SqlConnection conn = new SqlConnection(connStr); conn.Open(); //创建命令对象 SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddRange...
/// SqlDataReader r = ExecuteReader(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24)); /// /// <param name="connectionString">SqlConnection有效的SQL连接...
public static SqlCommand CreateCmd(string procName, SqlParameter[] prams, SqlConnection Conn) { SqlConnection SqlConn = Conn; if (SqlConn.State.Equals(ConnectionState.Closed)) { SqlConn.Open(); ...
new System.Data.SqlClient.SqlParameter("@Original_员工编号", System.Data.SqlDbType.VarChar, 10, System.Data.ParameterDirection.Input, false, ((byte)(0)), ((byte)(0)), "员工编号", System.Data....
private static SqlCommand CreateCommand(string procName, SqlParameter[] prams) { OpenConnect();//打开DB连接 SqlCommand command = new SqlCommand(procName, conn); command.CommandType = CommandType....
ADO.net操作数据库总结,包括SqlConnection、SqlCommand等
手动实现SqlDataAdapter类的方法,解析该类的运行方式。 其实它就是依靠SqlConnection,SqlCommand,DataReader来实现的,对学习Ado.net的思想很有用
SqlDataAdapter da = new SqlDataAdapter(sql, con); DataSet ds = new DataSet(); da.Fill(ds, "cs"); dataGridView1.DataSource = ds.Tables["cs"]; a = ds.Tables[0].Rows[0][1].ToString(); con.Close()...
CommandType commandType, string commandText, params SqlParameter[] commandParameters) Execute* (SqlConnection connection, string spName, params object[] parameterValues) 除这些重载以外,除 ...