0

在 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
4

1 回答 1

1

您正在返回数字,因此int在这里更可取。

此外,在 C# 代码中解析错误时,您可能会执行以下操作:

enum Error { NO_ERROR = -1, ERROR 1 };

....

Error e = (Error)cmd.ExcecuteScalar();

这是非常干净和自我解释的代码,与将结果解析为 int 或比较字符串值相反。

于 2012-02-26T09:21:49.030 回答