关于将数据库中的bit型数据绑定到DataGrid中的CheckBox的Checked属性的问题。
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
用以上的语句将数据库中的bit型数据绑定到DataGrid中的CheckBox的Checked属性时,出现错误:
System.InvalidCastException: Specified cast is not valid.
后来发现可能是从数据库中取出的bit型数据中存在空值的在原因。
后来使用以下的语句还是出现错误:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
没办法只能自己写一个方法,然后将Checked属性绑定到这个方法中了。
在.cs文件中增加了一个方法ConvertToBoolean:
1
public bool ConvertToBoolean(string str)
2
{
3
if(str == "True")
4
{
5
return true;
6
}
7
else
8
{
9
return false;
10
}
11
}
之后将绑定语句改成:![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
当然也可直接从源头上控制这种情况的发生,在查询数据库记录时使用IsNull方法了。