どのように私はこれを変換するのですかVB.NET C#へのコード?[定休日]

StackOverflow https://stackoverflow.com//questions/12651558

質問

Dim MaxItemID As Integer
Dim objCMD As New SqlCommand(StrSql, objConn)  
MaxItemID = IIf(IsDBNull(objCMD.ExecuteScalar()), 0, objCMD.ExecuteScalar()) + 1

C#でこれを行うにはどうすればよいですか?

役に立ちましたか?

解決

これはそれを行う必要があります(SQLを2回実行することは避けてください):

var objCMD = new SqlCommand(StrSql, objConn);
var sqlRes = objCMD.ExecuteScalar();
int maxItemID = 1 + (Convert.IsDBNull(sqlRes) ? 0 : (int)sqlRes);

注VBは変換されます object のリターン ExecuteScalarint 暗黙的に、しかし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;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top