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; }
版权声明:本博文属于作者原创或从其他地方学习而来的博文,未经许可不得转载.

浙公网安备 33010602011771号