Как присвоить столбцу значение true или false

#c# #sql

#c# #sql

Вопрос:

Как присвоить столбцу значение true или false. Я получаю количество значений для идентификатора. Затем проверяем счетчик и присваиваем ему логические значения true или false. На стороне просмотра мне нужно проверить, является ли полученное значение true или false, и на основе значения true или false мне нужно отобразить другой текст в моем представлении. Но теперь мой пункт.Полное значение всегда отображается как false. что я здесь делаю не так?

 var sqlst = @"select count(*) as columnCount, mem_name as Name, mem_add as address from my_table whereid = 1234"
using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MY_CONNECTION"].ConnectionString))
{
 connection.Open();
using (var sqlCommand = new SqlCommand(sqlst, connection)

using (var sqlResult = sqlCommand.ExecuteReader())
{
    while (sqlResult.Read())
{
    var checkcount = Convert.ToInt32(sqlResult["columnCount"].ToString());

    if (checkcount != 0)
    {
        Item.Complete = sqlResult["columnCount"].ToString() == "YES" ? true:false;
    }
    else
    {
        Item.Complete = sqlResult["columnCount"].ToString() == "NO" ? true: false;
    }

}
  }
}
  

Комментарии:

1. Вы уверены, что столбец с именем ColumnCount имеет значение с именем YES ? Потому что это не то слово, которое я бы ассоциировал с подсчетом. (Кроме того, этого не может быть, YES потому что тогда Convert.ToInt32 это не сработало бы. Либо ваше имя столбца неверно, либо ваши значения неверны.)

2. Моя модель похожа на этот общедоступный bool columnCount { get; set; }. Я вижу получение целочисленных значений в checkcount .

3. Вам не нужен троичный оператор для присвоения значения true false, поскольку == возвращает логическое значение.

4. Если столбец является a BIT и сопоставлен логическому значению, то весь этот .ToString() танец излишен. Item.Complete = (bool) sqlResult["columnCount"] должно получиться.

5. Запрос, который вы предоставили, неверен, он выдаст ошибку, поскольку вы не используете какое-либо group by предложение с count(*) .

Ответ №1:

Вместо передачи yes и No попробуйте использовать 1 и 0