Почему мой DataTable всегда возвращает «истина / ложь», но не строку? - PullRequest
2 голосов
/ 12 июля 2009

Я пытаюсь использовать DataTable, заполненный MySqlDataAdapter, который содержит список комментариев для записи в блоге. По некоторым причинам, если поле «анонимный» установлено в «1», поле имени пользователя будет пустым и должно быть заменено указанной строкой.

У меня проблема в том, что всякий раз, когда я пытаюсь получить значение поля, я получаю либо «true», либо «false». Мой код выглядит так:

DataTable modifiedComments = new DataTable();
// The function GetCommentsById() returns a MySqlDataAdapter with the result of the query
MySqlDataAdapter commentsContainer = Wb.Entry.GetCommentsById(imageId);
commentsContainer.Fill(modifiedComments);
commentsContainer.Dispose();

    foreach (DataRow row in modifiedComments.Rows)
        {
            string status;
            // This never returns true, so we always get into the else
            if (row["anonymous"] == "1")
            {
                    status = "You are anonymous";
            }
            else
            {
                    status = "You are not anonymous";
            }
        }

        viewImageCommentsRepeater.DataSource = modifiedComments;
        viewImageCommentsRepeater.DataBind();

1 Ответ

5 голосов
/ 12 июля 2009

Поле, вероятно, является "битовым" типом поля, которое сопоставляется с логическим значением в ADO.NET

Просто проверьте истинность или ложь:

if ((bool)row["anonymous"])
   ...
...