为了取得日期字段为空的记录,将该字段输入某一日期。花了好长时间摸索才得到正确答案。
1、 DataView dv = sytable.AsDataView();
dv.RowFilter = "归还日期 = null";
或dv.RowFilter = "归还日期 = ''";
dv.RowFilter = "归还日期 = 'DBNull'";
dv.RowFilter = "归还日期 = 'DBNull.Value'";
程序编译运行通过,但查不到记录。
2、DataView dv = sytable.AsDataView();
dv.RowFilter = "归还日期 = DBNull";
或 dv.RowFilter = "归还日期 = DBNull.Value";
dv.RowFilter = "isnull([归还日期])";
程序运行报错。
3、DataView dv = sytable.AsDataView();
dv.RowFilter = "isnull([归还日期],true)";
程序运行能查到记录,但对该字段赋值时出现错误:无法在 System.Boolean 和 System.DateTime 上执行“And”操作。
或 dv.RowFilter = "isnull([归还日期],'Null Column') = 'Null Column'";
程序运行能查到记录,但对该字段赋值时出现错误:无法在 System.DateTime 和 System.String 上执行“=”操作。
4、最后将RowFilter字串中的日期字段作转换,程序能正确查询到记录,并可赋值操作。
DataView dv = sytable.AsDataView();
dv.RowFilter = "Isnull( Convert(归还日期, 'System.String'),'Null Column') = 'Null Column' ";