У нас есть таблица со столбцом IsChecked
с типом данных Binary(1)
. По сути, он хранит 0x00
или 0x01
для представления, если эта строка данных проверена.
Я знал, что было бы лучше использовать Bit
в качестве типа данных, но с этой таблицей уже связано множество других модулей, поэтому давайте оставим это так, как есть сейчас.
Я пробовал интуитивно понятные способы, такие как
// _dr is the SqlDataReader
Convert.ToBoolean(_dr["IsChecked"]);
(bool)_dr["IsChecked"];
но он не может просто так конвертироваться, тогда я попробовал некоторые подходы, которые, как мне кажется, могли бы работать
bool.Parse(_dr["IsChecked"].ToString());
Convert.ToBoolean((byte)_dr["IsChecked"]);
Convert.ToBoolean((byte[])_dr["IsChecked"]);
Convert.ToBoolean((int)_dr["IsChecked"]);
Но все вышеперечисленное вернуло меня, конвертировать не удалось как
Указанный состав недействителен.
Я проверяю, как мой коллега прочитал это поле в своем модуле, и, похоже, для вывода значения требуется выходной параметр, у которого Bit
в качестве типа данных.
Но должно быть легче сделать то же самое, верно?
Мне просто нужно знать правильный способ конвертации _dr["IsChecked"]
.