C# 对象类型的DBNull值的DataView的RowFilter
DataTable中DBNull值的筛选器字符串的外观如何C# 对象类型的DBNull值的DataView的RowFilter,c#,wpf,datatable,null,dbnull,C#,Wpf,Datatable,Null,Dbnull,DataTable中DBNull值的筛选器字符串的外观如何 "IsNull("Column1", 'Null Column')='Null Column'" "IsNull("Column1", 'Null Column')<>'Null Column'" “IsNull(“Column1”,“Null Column”)=“Null Column” “IsNull(“Column1”,“Null Column”)“Null Column” 此字符串用于过滤列1中的空值。如果它是一
"IsNull("Column1", 'Null Column')='Null Column'"
"IsNull("Column1", 'Null Column')<>'Null Column'"
“IsNull(“Column1”,“Null Column”)=“Null Column”
“IsNull(“Column1”,“Null Column”)“Null Column”
此字符串用于过滤列1中的空值。如果它是一个字符串列,并引发其他类型的异常,则可以正常工作
有什么想法吗
我还想知道列的对象类型的Null和DBNull是否相同?dt.Columns.Add(新数据列(“标题”,typeof(字符串));
Add(新数据列(“TitleID”,typeof(Int32)){AllowDBNull=true});
添加(新的数据列(“日期”,类型(对象));
添加(新数据列(“Desc”,typeof(string));
对于(int i=0;i我根据NULL
电子邮件ID过滤DataTable
:
var results = from DataRow myRow in dtCustomer.Rows
where (object)myRow["EmailID"] == DBNull.Value
select myRow;
DataTable dt = results.CopyToDataTable();
关于NULL
和DBNULL
有一个很好的解释
根据:
我还用数据库中的JoinDate
进行了测试,它是NULL
,数据类型是datetime
,也用date
类型进行了测试
dataView.RowFilter = "Isnull(JoinDate,'Null Column') = 'Null Column'";
更新
更新您的代码:
dt.Columns.Add(new DataColumn("Date", typeof(DateTime)) { AllowDBNull = true });
在循环的中
:
if (i == 2)
{
row["Date"] = DateTime.Now;
}
然后过滤。它会工作的。试试看
dataView.RowFilter = "JoinDate IS null";
你检查了我下面的答案了吗?检查更新后的答案。P4的数据类型是什么?typeof(object)
但是我正在插入DateTime
的值。这有什么问题吗?P4
应该是来自数据库的DataTable
列的名称。可能是但我在使用DataTable的DataView,所以我在使用接受字符串的RowFilter。这就是我查找筛选器字符串的原因。我该怎么做?你可以告诉我们吗e LINQ没有任何问题,但我仅限于RowFilter..这就是我要求筛选字符串的原因。是的,这是我在查询中给出的代码。这对字符串列很好,但对其他类型列抛出异常。请查看附件图像..对于定义的数据类型,它将起作用,我询问对象类型pe并将类型(如DateTime)强制转换为对象。在这种情况下,它不起作用。。
if (i == 2)
{
row["Date"] = DateTime.Now;
}
dataView.RowFilter = "JoinDate IS null";