我有一个带有列
的表提供程序 implied(tiny int)(something like nullable bool)
providerid(int)
我有一张表格,我有复选框
我正在使用c#..
进行winforms应用程序我正在使用enitities,我的dbcontext名称是dbcontext
如何用C sharp将bool转换为可空的bool(bool?)。
我试过这种方式
if (chkbox.checked == true)
bool yes = 0;
else
bool yes = 1;
dbcontext.implied = yes;
但收到错误
Cannot convert bool to bool?
答案 0 :(得分:13)
明确地转换为bool?
bool b = true;
bool? b2 = (bool?)b;
如果您感兴趣,可以将bool?
转换为bool
。您可以先检查HasValue
,如果它为空,将返回false
,如果不为空则返回true
。
如果它有值,你可以施放到布尔。
bool? b = null;
if (b.HasValue == false) // it's null
{
//initialize b
b = false;
}
else if((bool)b == true)
{
// do whatever
}
查看http://msdn.microsoft.com/en-us/library/bb384091.aspx是否有bool?布尔转换。
答案 1 :(得分:3)
可以直接执行类似
的操作bool result = true;
bool? toBindData = (bool?)result;
答案 2 :(得分:2)
dbcontext.implied = new Nullable<bool>(yes);
答案 3 :(得分:0)
尝试 Convert.ToBoolean(您的复选框)
下面我在DataGridView
检查CheckBox
列的测试方式,并且工作正常。
if ( Convert.ToBoolean( dgv.Rows[r].Cells["Delete"].Value))
{
//Do work;
}
答案 4 :(得分:0)
这里是解决方法:
if (Convert.ToBoolean(chkbox.checked) == true)
或更简单的版本:
if (Convert.ToBoolean(chkbox.checked))
,因为默认条件预期该语句的真相。
依赖项:
using.System;