打印本文 打印本文 关闭窗口 关闭窗口
ado.net详细研究(二) —— DataReader(一)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2192  更新时间:2009/4/23 10:46:16  文章录入:mintao  责任编辑:mintao
    建立数据库连接以后我们须要访问和操作数据库——CRUD:Create、Read、Update、Delete。

为了执行命令我们创建Command对象,Comand对象要求执行Connection对象和CommandText对象。

SqlCommand cmd = new SqlCommand();

cmd.Connection = ConnectionObject;//比如我们先前建立的Conn对象

cmd.CommandText = CommandText;//比如一个Select语句

string CommandText = “Select * from friend”;

当然我们也可以使用存储过程,这个以后讨论。

另外的方法:

SqlCommand cmd = new SqlCommand(CommandText);

cmd.Connection = ConnectionObject;//比如我们先前建立的Conn对象

或者

SqlCommand cmd new SqlCommandCommandTextConnecionObject);

另外还有一个包含三个参数的构造函数,我们不讨论。设计到的是事务处理。

有了Command对象以后我们须要执行操作,但是执行前请一定记得打开你的数据库连接,否则会有异常。SqlCommand对象提供下面4个执行方法:

l         ExecuteNonQuery

l         ExecuteScalar

l         ExecuteReader

l         ExecuteXmlReader

ExecuteNonQuery方法执行不返回结果的命令,通常使用它执行插入、删除、更新操作。

例如我们对contract数据库进行操作:

string sqlIns = “insert [friend] (Fname,Fphone,Faddress) values (‘雪冬寒’,’027-87345555’,’武汉大学宏博公寓’);

cmd.CommandText = sqlIns;

cmd.ExecuteNonQuery();

string sqlUpdate = “update [frined] set Faddress = ‘武汉大学’ where Fid = 1”;

cmd.CommandText = sqlUpdate;

cmd.ExecuteNonQuery();

string sqlDel = “delete from [friend] where Fid = 1;

cmd.CommandText = sqlDel;

cmd.ExecuteNonQuery();

注:如果你要测试以上代码,请自己书写,不要复制和粘贴,这样会存在文字错误(汉语和英语的符号问题)。

       ExecuteScalar方法执行返回单个值的命令,例如我们须要统计系统中所有联系人的数量,就可以这样:

SqlCommand cmd = new SqlCommand(“select count(*) from friend”, Conn);

Conn.open();

int friendCount = (int) cmd.ExecuteScalar();

MessageBox.Show(“” + friendCount.ToString() + “个联系人”);

         说明:命令可以返回多个结果,此时ExecuteScalar方法将返回第一行第一个字段的值,同时其他所有值不可访问,这意味着如果象获得最好的性能,您应该构造适当的select查询,以便查询的结果集中尽可能少的包含额外的数据。如果只对单个返回值感兴趣,这个方法是首选的方法。另外该方法返回object类型数据,所有保证进行适当的类型转换是您的责任,否则您将得到异常。

       ExecuteXmlReader方法执行返回一个xml字符串的命令。它将返回一个包含所返回的smlSystem.Xml.XmlReader对象。这个方法我一无所知,不作讨论^_^

(由于文章不能操作64k,我只能分开贴)

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口