Как преобразовать этот код VB.NET в С#?

77
11

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

Как это сделать на С#?

спросил(а) 2021-01-19T20:13:29+03:00 3 месяца, 2 недели назад
1
Решение
62

int MaxItemID = 0;
using(SqlCommand objCMD = new SqlCommand(StrSql, objConn))
{
MaxItemID = (Converter.IsDBNull(objCMD.ExecuteScalar()) ? 0 : objCMD.ExecuteScalar()) + 1;
}

ответил(а) 2021-01-19T20:13:29+03:00 3 месяца, 2 недели назад
45

Это должно сделать это (и избегать выполнения SQL дважды):

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

Примечание. VB будет преобразовывать возвращаемый object ExecuteScalar в int неявно, но С# не будет.

ответил(а) 2021-01-19T20:13:29+03:00 3 месяца, 2 недели назад
44

int MaxItemID;
SqlCommand objCMD =new SqlCommand (StrSql, objConn);
MaxItemID = IsDBNull(objCMD.ExecuteScalar()? 0: objCMD.ExecuteScalar()) + 1;

ответил(а) 2021-01-19T20:13:29+03:00 3 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема