为什么我成功插入数据后,用ExecuteScalar()返回一个值总是空值。但是我的数据库里明明是有值的。?
--第一种 INSERT INTO dbo.Info(uName) VALUES (N'11') SELECT @@IDENTITY --第二种 INSERT INTO dbo.Info(uName) OUTPUT INSERTED.uId VALUES(N'1110')
谢谢,有两种方法,非常感谢。可以输出值了。
ExecuteScalar()对应的SQL语句是怎么写的?
SqlCommand 对应的插入语句是“insert into DoSUser(UserName,PassWord,UserInfo,AddDate,UserEmail) values(@UserName,@PassWord,@UserInfo,@AddDate,@UserEmail)”
这个可以在数据库中读到(插入是成功的)
然后是SqlCommand声明的对象 cmd 调用ExecuteScalar方法。返回给一个Object类型。但是总是为空值。
@joehuier:
执行ExecuteScalar时,SqlCommand要有对应的SELECT语句
@dudu: 添加select语句后,没有错误了。谢谢。
不是ExecutrScalar去执行,应该用ExecuteNonQuery
我想用ExecuteNonQuery执行应该更好。其他园友说,可以添加一个selsect语句,也可以执行。谢谢。
你是想要DoSUser的新ID吗?在插入语句后面使用 SELECT @@IDENTITY,然后使用ExecuteScalar才会有输出值。
添加后可以输出值了,thank you