首页 新闻 会员 周边

ExecuteScalar都不到值

0
[已解决问题] 解决于 2013-10-28 15:34

为什么我成功插入数据后,用ExecuteScalar()返回一个值总是空值。但是我的数据库里明明是有值的。?

joe-snail的主页 joe-snail | 菜鸟二级 | 园豆:206
提问于:2013-10-28 11:20
< >
分享
最佳答案
0
--第一种
INSERT  INTO dbo.Info(uName) VALUES  (N'11')
SELECT @@IDENTITY
--第二种
INSERT INTO dbo.Info(uName) OUTPUT INSERTED.uId VALUES(N'1110')     
奖励园豆:5
秋壶冰月 | 大侠五级 |园豆:5903 | 2013-10-28 13:27

 谢谢,有两种方法,非常感谢。可以输出值了。

joe-snail | 园豆:206 (菜鸟二级) | 2013-10-28 15:34
其他回答(3)
0

ExecuteScalar()对应的SQL语句是怎么写的?

dudu | 园豆:30948 (高人七级) | 2013-10-28 11:21

SqlCommand 对应的插入语句是“insert into DoSUser(UserName,PassWord,UserInfo,AddDate,UserEmail) values(@UserName,@PassWord,@UserInfo,@AddDate,@UserEmail)”

这个可以在数据库中读到(插入是成功的)

然后是SqlCommand声明的对象 cmd 调用ExecuteScalar方法。返回给一个Object类型。但是总是为空值。

 

支持(0) 反对(0) joe-snail | 园豆:206 (菜鸟二级) | 2013-10-28 11:30

@joehuier: 

执行ExecuteScalar时,SqlCommand要有对应的SELECT语句

支持(0) 反对(0) dudu | 园豆:30948 (高人七级) | 2013-10-28 11:34

@dudu: 添加select语句后,没有错误了。谢谢。

支持(0) 反对(0) joe-snail | 园豆:206 (菜鸟二级) | 2013-10-28 15:29
0

不是ExecutrScalar去执行,应该用ExecuteNonQuery

滴答的雨 | 园豆:3660 (老鸟四级) | 2013-10-28 11:33

 我想用ExecuteNonQuery执行应该更好。其他园友说,可以添加一个selsect语句,也可以执行。谢谢。

支持(0) 反对(0) joe-snail | 园豆:206 (菜鸟二级) | 2013-10-28 15:32
0

你是想要DoSUser的新ID吗?在插入语句后面使用 SELECT @@IDENTITY,然后使用ExecuteScalar才会有输出值。

飞扬的尘埃 | 园豆:1318 (小虾三级) | 2013-10-28 11:46

添加后可以输出值了,thank you

支持(0) 反对(0) joe-snail | 园豆:206 (菜鸟二级) | 2013-10-28 15:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册