对于 DataTable 中的 DBNull 值,过滤器字符串的外观如何。
"IsNull("Column1", 'Null Column')='Null Column'"
"IsNull("Column1", 'Null Column')<>'Null Column'"
此字符串用于过滤 Column1 中的 Null 值。如果它是一个字符串列并且为其他类型抛出异常,它工作正常。
对此有任何想法吗?
而且我还想知道列对象类型的 Null 和 DBNull 是否相同?
dt.Columns.Add(new DataColumn("Title", typeof (string)));
dt.Columns.Add(new DataColumn("TitleID", typeof(Int32)) {AllowDBNull = true});
dt.Columns.Add(new DataColumn("Date", typeof(object)) );
dt.Columns.Add(new DataColumn("Desc", typeof(string)));
for(int i =0; i<10; i++)
{
var input = i%2 == 0 ? (object) i : DBNull.Value;
var result = input.Equals(DBNull.Value);
DataRow row = dt.NewRow();
row["Title"] = "C#" + i;
row["TitleID"] = i % 2 == 0 ? (object) i : DBNull.Value;
row["Date"] = i == 2 ? (object) DateTime.Now : DBNull.Value;
row["Desc"] = i % 2 == 0 ? null : "";
dt.Rows.Add(row);
}
DataView defView = dt.DefaultView;
defView.RowFilter = "IsNull(Date, 'Null Column')='Null Column'";
var filtered = defView;