如何将此 VB.NET 代码转换为 C#?[关闭]
-
11-12-2019 - |
题
Dim MaxItemID As Integer
Dim objCMD As New SqlCommand(StrSql, objConn)
MaxItemID = IIf(IsDBNull(objCMD.ExecuteScalar()), 0, objCMD.ExecuteScalar()) + 1
我如何在 C# 中执行此操作?
解决方案
这应该可以做到(并避免执行 SQL 两次):
var objCMD = new SqlCommand(StrSql, objConn);
var sqlRes = objCMD.ExecuteScalar();
int maxItemID = 1 + (Convert.IsDBNull(sqlRes) ? 0 : (int)sqlRes);
注意 VB 将转换 object
返回的 ExecuteScalar
到一个 int
隐式地,但 C# 不会。
其他提示
int MaxItemID = 0;
using(SqlCommand objCMD = new SqlCommand(StrSql, objConn))
{
MaxItemID = (Converter.IsDBNull(objCMD.ExecuteScalar()) ? 0 : objCMD.ExecuteScalar()) + 1;
}
int MaxItemID;
SqlCommand objCMD =new SqlCommand (StrSql, objConn);
MaxItemID = IsDBNull(objCMD.ExecuteScalar()? 0: objCMD.ExecuteScalar()) + 1;
不隶属于 StackOverflow