`
sjk2013
  • 浏览: 2188619 次
文章分类
社区版块
存档分类
最新评论

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的用户名,和相应的密码。

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# SqlConnection

    自己常用的C# Database 类。包括 SqlConnection,SqlCommand,SqlDataReader 的使用

    详解C#中SqlParameter的作用与用法

    一般来说,在更新DataTable或是DataSet时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有单引号,程序就会发生错误,并且他人可以轻易地通过拼接Sql语句来进行注入攻击。 string sql =...

    asp.net小实例解析

    SqlParameter parameterBookID = new SqlParameter("@BookID", SqlDbType.Int, 4); parameterBookID.Value = bookID; myCommand.Parameters.Add(parameterBookID); SqlParameter parameterCartID = new...

    c#连接数据库常用的语句

    private SqlDataAdapter CreateDataAdapter(string procName, SqlParameter[] prams) //将参数添加到SqlDataAdapter当中 { this.Open(); SqlDataAdapter dap = new SqlDataAdapter(procName, con); dap....

    DBHelper方便连接数据库 DBHelper

    public static int ExecuteCommand(string sql, params SqlParameter[] values) { SqlCommand cmd = new SqlCommand(sql, Connection); cmd.Parameters.AddRange(values); return cmd.ExecuteNonQuery(); } ...

    CMS.DBUtility.dll

    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....

    简单asp.net 的存储过程应用

    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#和SQLserver数据库制作的学生成绩管理系统,不足之处请多指教

    C#使用SqlConnection连接到SQL Server的代码示例

    主要介绍了C#使用SqlConnection连接到SQL Server的代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    菜品管理数据库.doc

    params SqlParameter[] parameters) { //创建连接对象 SqlConnection conn = new SqlConnection(connStr); conn.Open(); //创建命令对象 SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.AddRange...

    .net 数据库访问类

    /// 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(); ...

    C#图书馆管理信息系统

    new System.Data.SqlClient.SqlParameter("@Original_员工编号", System.Data.SqlDbType.VarChar, 10, System.Data.ParameterDirection.Input, false, ((byte)(0)), ((byte)(0)), "员工编号", System.Data....

    mysqlhelper

    private static SqlCommand CreateCommand(string procName, SqlParameter[] prams) { OpenConnect();//打开DB连接 SqlCommand command = new SqlCommand(procName, conn); command.CommandType = CommandType....

    ADO.net操作数据库总结

    ADO.net操作数据库总结,包括SqlConnection、SqlCommand等

    自己实现DataAdapter的方法

    手动实现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()...

    .net数据访问类 SQL Helper 类

    CommandType commandType, string commandText, params SqlParameter[] commandParameters) Execute* (SqlConnection connection, string spName, params object[] parameterValues) 除这些重载以外,除 ...

Global site tag (gtag.js) - Google Analytics