2013-09-26 2 views
0

В базе данных Access у меня есть столбец с именем Display, который имеет тип Yes/No. Я извлекаю строку таблицы и сохраняю ее в строчном массиве с именем editDrData[]. Теперь я хочу проверить, истинно это или ложно. Я попробовал следующее, но он не работает. Каков правильный способ сделать эту проверку?преобразование строки в boolean и проверка логического значения

if (Convert.ToBoolean(editDrData[15]) == false) 
+0

Что такое фактическое значение strinf элементов в массиве? Действительно ли это «Да» и «Нет»? –

+0

во время хранения Я сохраняю логические значения true и false, – Durga

+0

Если они логические, почему они хранят их в массиве строк? –

ответ

0

Если, по вашему мнению, массив на самом деле имеет логические значения, вы не должны делать какие-либо преобразования. Простой

if (editDrData[15]) { 

} 

будет делать трюк. Если это действительно строки, это должно сработать;

if (editDrData[15] == "True") { 

} 
+0

, но как я могу проверить, истинно ли значение или false? – Durga

+0

@ Yuriy Galanter, показывая мне эту ошибку, когда я попробовал ее 'Error Operator '==' не может быть применен к операндам типа 'string' и 'bool'' – Durga

+0

это сработало' if ((editDrData [15] == "True »)' Пожалуйста, обновите свой ответ. – Durga

1

Вам нужно сделать сравнение строк

bool value = editDrData[15] == "Yes"; 
+0

Во время хранения я сохраняю логические значения true и false, а не строку – Durga

+0

@Durga В ответе выше 'значение' будет' true' или 'false'. – Khan

+0

Что такое строковое значение editDrData [15]? "правда"? "Да"? – MikeLim

0

Должно работать. Я бы сказал, что это неправильно с форматированием строки или логики. Вам нужно будет вставить контрольную точку для проверки, но если она соответствует examples from microsoft, тогда строка должна успешно конвертироваться ... (если вы поставите точку останова и узнаете значение во время выполнения, тогда вы получите ответы от нас)

Так что если editDrData [15] выглядит как «true» или «false» (случай не имеет значения), то код, который у вас выше, будет работать.

Если строка, которую вы имеете в editDrData [15], на самом деле «Да» или «Нет», вы не можете использовать Convert.Boolean (string); и вы должны поставить свою собственную логику, как


if(editDrData[15] == "No") 
{ 
    //do stuff here 
} 
0

в .net если вы хотите передать строку Convert.ToBoolean(), это может быть только «True» или «False»

Or Я думаю, что это будет исключение.

Вы проверяете, что это фактическое значение, хранящееся в базе данных в виде строки? Если это не True и False, вы не можете сделать это таким образом.

Вы можете просто сравнить строки в этом случае

например

, если (String.equals (editDrData [15], "ДА ???", StringComparison.CurrentCultureIgnoreCase)) {}

Строка.

BTW: было бы лучше сохранить это как логическое при импорте в систему?

1

Сравнение строк для хранения строки в таблице YES/NO.

bool value; 
if (editDrData[15] == "Yes") 
{ 
    value = true; 
} 
else 
{ 
    value = false; 
} 
0

Строка должна равняться (System.Boolean.TrueString) "TRUE" или (System.Boolean.FalseString) "FALSE", чтобы использовать Convert.ToBoolean (строка) , если вы собираетесь использовать такую ​​функцию весь проект вы можете переопределить несколько метод и сделать свой собственный конвертер

http://msdn.microsoft.com/en-us/library/ayybcxe5.aspx

Смежные вопросы