黑马程序员技术交流社区
标题:
ADO.Net中的小问题?
[打印本页]
作者:
韩俊
时间:
2012-11-20 22:11
标题:
ADO.Net中的小问题?
ExecuteNonQuery();ExecuteReader();ExecuteScalar();求三个用法和何时才用详解?
作者:
杨深
时间:
2012-11-20 22:23
查询:
ExecuteScalar()可以执行SELECT查询,返回的是一个单值
步骤如下:
(1)创建Connection对象(数据库连接对象):SqlConnection 对象名 = new SqlConnection(连接字符串);
(2)创建查询用的SQL语句。
(3)利用SQL语句和Connection对象来创建Command对象:SqlCommand 对象名 = new SqlCommand(SQL语句, Connection对象);
(4)调用Connection对象的Open()方法,打开数据库连接,Connection对象.Open();
(5)调用Command对象的ExecuteScalar()方法,返回一个值, int i = Command对象.ExecuteScalar();
(6)操作完成后调用Connection对象的Close()方法,关闭数据库连接, Connection对象.Close();
ExecuteReader()返回一个Datareader对象。如:
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read()) {}
非查询操作:
对数据库执行非查询操作时,包括增加、修改、删除数据,都使用Command对象的ExecuteNonQuery()方法,步骤如下:
(1)创建Connection对象(数据库连接对象)。
(2)创建增删改用的SQL语句。
(3)利用SQL语句和Connection对象来创建Command对象。
(4)调用Connection对象的Open()方法,打开数据库连接。
(5)调用Command对象的ExecuteNonQuery ()方法执行命令,返回受影响的行数。
(6)操作完成后调用Connection对象的Close()方法,关闭数据库连接。
SqlConnection 对象名 = new SqlConnection(连接字符串);
Connection.Open();
SqlCommand 对象名 = new SqlCommand(SQL语句, Connection对象名);
Command 对象名.ExecuteNonQuery();
int i = Command 对象名.ExecuteNonQuery();
作者:
王新阳
时间:
2012-11-20 22:25
ExecuteNonQuery执行增删改命令。返回受影响的数据(insert、delete、Update)
ExecuteReader返回一个 DataReader 对象。
ExecuteScalar返回数据库查询出来的第一行第一列。
作者:
许庭洲
时间:
2012-11-20 22:32
1. ExecuteNonQuery方法是用来执行insert、delete、update语句的,由于这些语句执行后只有一个结果:“影响了**行”,所以ExecuteNonQuery方法返回的是影响的行数(int)。ExecuteNonQuery() 这个方法并不返回一个DataReader对象,而是返回一个int类型的值,即在执行之后在数据库中所影响的行数。
2.执行有多行结果集的用ExecuteReader
SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
Console.WriteLine(reader.GetString(1));
}
3. SqlCommand的ExecuteScalar方法用于执行查询,并返回查询所返回的结果集中第一行的第一列,因为不能确定返回值的类型,所以返回值是object类型
cmd.CommandText = "select count(*) from T_User";
int i = Convert.ToInt32(cmd.ExecuteScalar())
作者:
韩温华
时间:
2012-11-21 16:44
ExecuteNonQuery();
SqlCommand的ExecuteScalar方法用于执行查询,并返回查询中所返回的结果集第一行第一列,因为不能确定返回值类型,所以返回值是object类型。一般情况下在SELECT COUNT(*) 才用ExecuteScalar()
例1:获取员工的总人数
cmd.commandText=”select count(*) from T_Uers”;
int i=Convert.ToInt32(cmd.ExecuteScalar);
例2:获取当前的日期
cmd.commandText=”select getdate()”;
DateTime dt=Convert.ToDateTime(cmd.ExecuteScalar());
ExecuteScalar();
SqlCommand的ExecuteScalar方法用于执行查询,并返回查询中所返回的结果集第一行第一列,因为不能确定返回值类型,所以返回值是object类型。一般情况下在SELECT COUNT(*) 才用ExecuteScalar()
例1:获取员工的总人数
cmd.commandText=”select count(*) from T_Uers”;
int i=Convert.ToInt32(cmd.ExecuteScalar);
例2:获取当前的日期
cmd.commandText=”select getdate()”;
DateTime dt=Convert.ToDateTime(cmd.ExecuteScalar());
作者:
韩温华
时间:
2012-11-21 16:47
韩温华 发表于 2012-11-21 16:44
ExecuteNonQuery();
SqlCommand的ExecuteScalar方法用于执行查询,并返回查询中所返回的结果集第一行第一 ...
不好意思楼上ExcuteNonQuery()用法:
SqlCommand表示向服务器提交一个命令(SQL语句等)
CommandText为要执行的语句,ExecuteNonQuery方法执行一个非查询语句(update,Insert,Delete)等,返回的是执行的影响行数
用using进行管理,代码如下:
using(SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText=”Insert into T_Users(UserName,Password) values (‘admin’,’88888’)”;
cmd.ExecuteNonQuery();
}
刚刚在word中总结过的
作者:
guobin_lu
时间:
2013-3-30 15:58
ExecuteNonQuery方法 :执行非查询SQL操作,包括增insert、删delete、改update
ExcuteReader方法 :执行查询,返回DataReader,通过DataReader的对象dr["列名"]
可以取得数据,一次读一行,可以通过while(dr.Read())进行循环读取
ExecuteScalar方法 :执行查询,只返回一个数据
在连接SQL Server数据库:首先创建SqlConnection类和SqlCommand类实例分别用于连接到SQL Server数据库和执行SQL语句命令,然后打开数据连接并使用SqlCommand的相应方法执行SQL语句。
ExecuteNonQuery()方法执行SQL语句并且不返回数据;
ExecuteReader()方法将SQL语句发送给SqlConnection并生产一个SqlDataReader类对象,该SqlDataReader对象包含SQL命令返回的数据;
ExecuteScalar()方法执行SQl查询,并返回查询结果集中的第一行的第一列,忽略额外的列或行!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2