应用程序根据所要执行的操作,传递对应的SQL子句到数据库服务器,数据库内置的SQL解译引擎解译收到的SQL子句,然后执行特定的数据操作。ASP.NET通过Command传递各种不同内容的SQL语句至后端数据库系统,进行资料的更新存取操作。根据所要执行的SQL语句的种类,必须引用适当的Command方法成员来实现。
Command对象的方法成员:
ExecuteNonQuery: myCmd.ExecuteNonQuery( ); //执行某种SQL语句
ExecuteReader: DataReader dr=myCmd.ExecuteReader( ); //回传一个DataReader对象,包含了从SQL语句从数据库所取得的数据内容
ExecuteScalar: string esCommand=myCmd.ExecuteScalar( ).ToString( ); //取得单一列的返回值,返回值为object类,因此用ToString( )将其转换为string类
Command对象的建立:
SqlCommand sqlCmd=new SqlCommand( ); //建立Command对象
sqlCmd.Connection=sqlConn; //设置Connection属性,Connection代表所要连接的数据库,是一个Connection对象,必须将一个建立好的Connection对象指定给它
sqlCmd.CommandText=strSQL; //设置CommandText属性, 是所要执行的SQL语句,可以是一段SQL语句或储存过程的变量名称
其他创建Command对象方法:
SqlCommand sqlCmd=new SqlCommand(string cmdText, SqlConnection connection);
SqlCommand sqlCmd=sqlConn.CreatCommand( ); //sqlConn为SqlConnection类的对象
Parameter对象
Parameter是数据接口类之一,搭配Command对象共同工作,提供SQL查询所需的对数设置。
SQL语句:“SELECT * FROM moviedata WHERE id=”+intid; //intid是一个变量,它储存SQL所要搜寻的数据编号条件值 “SELECT * FROM moviedata WHERE id=@id”; //用parameter参数代替 SqlParameter parameter=new SqlParameter( ); Parameter.ParameterName= “@id”; //指定名称属性 |
除了建立SqlParameter对象之外,最后你还必须将其加入Command参数集合中,如此一来,这个SqlParameter对象才会在程序执行的过程中被引用。语法如下:
salCmd.Parameters.Add(parameter);
其他parameter属性:
parameter.SqlDbType=SqlDbType.NChar; //参数的数据类型,为列的对应类型
parameter.Size=10; //域值的长度
parameter.Value=bookID; //输入SQL中,如同直接输入SQL所使用的变量
完整使用示例:
SqlParameter sqlPara=new SqlParameter( ); //建立SqlParameter对象 sqlPara.SqlDbType=SqlDbType.NChar; //指定数据类型 sqlPara.Size=10; //数据长度 sqlPara.ParameterName= “@bookID”; //指定名称,与SQL条件值变量名对应 sqlPara.Value=bookID; //对应的数据库列名 sqlCmd.Parameters.Add(sqlPara); //添加到Command参数集合中 |
简单版本:
pblic SqlParameter Add( string parameterName, SqlDbType sqlDbType, int Size ) |
更简单写法:
sqlCmd.Parameters.Add(“@bookid”,SqlDbType.NChar,10).Value=strBookID;
DataReader对象
SqlDataReader与SqlCommand协同运作,是一种轻量级的数据展示对象。Command对象处理SELECT类语句所取得的数据内容,可以由SqlDataReader对象返回,并且进一步提取出来。
DataReader是一种只读、单向浏览的简单数据集对象,同时提供高效率的数据存取功能,但是不提供数据的编辑功能,而且只能从第一笔开始依次逐笔读取每一笔的数据内容。
DataReader它从数据源取得数据,然后直接公开让外部程序代码进行读取,甚至将数据显示在数据接口,例如GridView中。
使用方法:
SqlDataReader myDr=myCmd.ExecuteReader( );