![](/img/trans.png)
[英]C# + SQL Server ExecuteScalar() not returning last inserted id
[英]Best practice for returning type from SQL Server to ExecuteScalar?
在C# SqlCommand - ExecuteScalar
是:
private object CompleteExecuteScalar(SqlDataReader ds, bool returnSqlValue)
现在让我们转到SQL Server。
如果我想从选择(返回到ExecuteScalar
)中返回一个值,例如:
if record already exists select `-1`
else select `0`
题 :
为了减少C#中的强制转换和tostring()数量,从SQL Server返回的首选(最佳做法)类型是什么:
if exists(select ....) select '-1' -- string
要么
if exists(select ....) select -1 -- int
您正在返回数字,因此int
在此意义上更可取。
此外,在解析C#代码中的错误时,您也可能会做类似的事情:
enum Error { NO_ERROR = -1, ERROR 1 };
....
Error e = (Error)cmd.ExcecuteScalar();
这是非常干净的,并且自我解释代码与将结果解析为int或比较字符串值相反。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.