C#与数据库访问技术总结(四)之Command对象

 Command(数据命令)对象与查询语句

  说明:前面几篇结论总结了,数据库连接的基本类,以及类常用的几个对象 connection类的数据成员以及方法,尤其是连接字符串的内容,还有连接的方式。

连接的字符串有了,连接对象有了,连接上以后,就是SQL语句的执行了。

  建立了数据库连接之后,就可以执行数据访问操作和数据操纵操作了。一般对数据库的操作被概括为CRUD——Create、Read、Update和Delete。

ADO.NET中定义了Command类去执行这些操作。

  和Connection对象类似,在.NET中存在SqlCommand和OleDbCommand,除了OleDbCommand类没有ExecuteXmlReader方法之外,OleDbCommand与SqlCommand非常类似。

Command对象主要用来执行SQL语句。利用Command对象,可以查询数据和修改数据。

Command对象是由Connection的对象创建的,其连接的数据源也将由Connection来管理。

而使用Command对象的SQL属性获得的数据对象,将由DataReader和DataAdapter对象填充到DataSet里,从而完成对数据库数据操作的工作。

1、Command对象的常用属性

    Command对象的常用属性有Connection、ConnectionString、CommandType、CommandText和CommandTimeout。

    1.Connection属性

    Connection属性用来获得或设置该Command对象的连接数据源。

     比如某SqlConnection类型的conn对象连在SQL Server服务器上,又有一个Command类型的对象cmd,可以通过cmd.Connection=conn来让cmd在conn对象所指定的数据库上操作。(一个数据库允许2个对象来操作。)

      不过,通常的做法是直接通过Connection对象来创建Command对象,而Command对象不宜通过设置Connection属性来更换数据库,所以上述做法并不推荐。


SqlConnection con = new SqlConnection(str);
con.Open();
MessageBox.Show("You are Successful!");
con.Close();


SqlCommand com = new SqlCommand();
com.Connection = con;
MessageBox.Show("You are still Successful!");

 

 

    2.ConnectionString属性

     ConnectionString属性用来获得或设置连接数据库时用到的连接字符串,用法和上述Connection属性相同。同样,不推荐使用该属性来更换数据库。

   3.CommandType属性

    CommandType属性用来获得或设置CommandText属性中的语句是SQL语句、数据表名还是存储过程。

该属性的取值有3个:

    †如果把CommandType设置成为Text或不设置,说明CommandText属性的值是一个SQL语句。

    †如果把CommandType设置成为TableDirect,说明CommandText属性的值是一个要操作的数据表的名。(SQL Server.NET数据提供程序不支持该属性值)

†  如果把CommandType设置成为StoredProcedure,说明CommandText属性的值是一个存储过程。

  如果不显示设置CommandType的值,则CommandType默认为Text。

       表  CommandType枚举值

说明

StoredProcedure

指示CommandType属性的值为存储过程的名称

TableDirect

指示CommandType属性的值为一个或多个表的名称

只有OLE DB的.NET Framework数据提供程序才支持TableDirect

Text

指示CommandType属性的值为SQL文本命令(默认)

 

 

 

 

 

 

 

 

String cnstr="Sever=(local); database=student; Integrated Security=true";

SqlConnection conn=new SqlConnection(cnstr);

conn.Open();

SqlCommand cmd=new SqlCommand("select * from Student", conn);

 

 

    4.CommandText属性

    根据CommandType属性的不同取值,可以使用CommandText属性获取或设置SQL语句、数据表名(仅限于OLE DB数据库提供程序)或存储过程。

 5、CommandTimeout属性

  获取或设置在终止执行命令的尝试并生成错误之前的等待时间。

等待命令执行的时间(以秒为单位)。 默认值为 30 秒。

public void CreateSqlCommand() 
{
   SqlCommand command = new SqlCommand();
   command.CommandTimeout = 15;
   command.CommandType = CommandType.Text;
}

 

posted @ 2014-10-28 10:18  [0]  阅读(1385)  评论(0)    收藏  举报