关于ExecuteScalar()函数的几点疑问.

tossgoon 2010-09-10 09:13:57
1\ 我看MSDN上的解释是:ExecuteScalar()函数返回首行首列的值,没有则为空.
2\ 我昨天用SqlCommand定义了一个变量,执行了一个插入语句,即插入一行,为什么用ExecuteScalar()函数,返回值为空,而非新插入行的首行首列;但是插入操作确定成功了,在数据库里有更新.
3\ 我看MSDN上的例子,ExecuteScalar()函数执行前,对于SqlCommand还定义了它的属性值 Parameters,不知道和这有没有关系.
4\ 顺便问下,SQLSERVER中的@代表啥意思.
5\ 谢谢大家!
...全文
176 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tossgoon 2010-09-11
  • 打赏
  • 举报
回复
用3楼的方法实现了,原来是要在后边加上select
谢谢大家.我的分不多.在此表示感谢了.
maysaber 2010-09-10
  • 打赏
  • 举报
回复
ExcuteNonQuery():执行不返回行的语句,主要是insert,update,delete
ExcuteScalar():返回单个值(查询返回的结果集中第一行的第一列),如:select Count(*) from table.
ExcuteReader():执行查询命令,返回DataReader对象。

Parameters:只是用于将C#的变量类型与数据库变量类型转化一致,
harker007 2010-09-10
  • 打赏
  • 举报
回复
SqlCommand.ExecuteScalar 方法
执行查询,并返回查询所返回的结果集中第一行的第一列。忽略其他列或行。
ExecuteNonQuery
您可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 DataSet 的情况下更改数据库中的数据。

虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。

对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。

楼主没仔细看哦
supertw 2010-09-10
  • 打赏
  • 举报
回复
@代表变量申明
边城的刀声 2010-09-10
  • 打赏
  • 举报
回复
如果非想用ExecuteScalar,那么在插入后再select
string sql ="insert ……;select @@IDENTITY";
边城的刀声 2010-09-10
  • 打赏
  • 举报
回复
2\
ExecuteScalar只针对select
4\ 顺便问下,SQLSERVER中的@代表啥意思.
代表parameter
孟子E章 2010-09-10
  • 打赏
  • 举报
回复
插入使用ExecuteNonQuery ()方法

ExecuteScalar用来读取
@是定义参数

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧