使用 DataTable.Select 检查空值
Checking for null value with DataTable.Select
我正在使用这样的 DataTable select:
DataRow[] rows = employees.Select("Name LIKE '%" + TB_Search.Text + "%'");
LV_Employees.DataSource = rows;
LV_Employees.DataBind();
我有一个列表视图,我在其中检查我在列表中使用的数据行中包含的值,我正在检查这样的值:
<%# Eval("Title") == DBNull.Value ? "" : Eval("Title") %>
但是当我这样做时,我仍然得到这个错误:
Unable to cast object of type 'System.DBNull' to type 'System.String'.
我也尝试检查 Eval("Title") == null
,但得到了同样的错误。我不确定还有什么方法可以检查可以解决此问题的空值。
我也试过但仍然出现同样的错误:
(Eval("Title") as string) ?? ""
Convert.IsDBNull(Eval("Title")) ? "" : "test"
string.IsNullOrEmpty(Eval("Title").ToString()) ? "" : "test"
Eval("Title").ToString().IsNullOrEmpty() ? "" : "test"
在代码隐藏中这样做是可行的,但似乎很奇怪我不能只在标记代码中进行内联检查。
foreach (DataRow r in rows)
{
if (r["Title"] == DBNull.Value)
r["Title"] = "";
}
CopyToDataTable 应该可以解决问题:
LV_Employees.DataSource = employees.Select("Name LIKE '%" + TB_Search.Text + "%'")
.CopyToDataTable();
LV_Employees.DataBind();
我正在使用这样的 DataTable select:
DataRow[] rows = employees.Select("Name LIKE '%" + TB_Search.Text + "%'");
LV_Employees.DataSource = rows;
LV_Employees.DataBind();
我有一个列表视图,我在其中检查我在列表中使用的数据行中包含的值,我正在检查这样的值:
<%# Eval("Title") == DBNull.Value ? "" : Eval("Title") %>
但是当我这样做时,我仍然得到这个错误:
Unable to cast object of type 'System.DBNull' to type 'System.String'.
我也尝试检查 Eval("Title") == null
,但得到了同样的错误。我不确定还有什么方法可以检查可以解决此问题的空值。
我也试过但仍然出现同样的错误:
(Eval("Title") as string) ?? ""
Convert.IsDBNull(Eval("Title")) ? "" : "test"
string.IsNullOrEmpty(Eval("Title").ToString()) ? "" : "test"
Eval("Title").ToString().IsNullOrEmpty() ? "" : "test"
在代码隐藏中这样做是可行的,但似乎很奇怪我不能只在标记代码中进行内联检查。
foreach (DataRow r in rows)
{
if (r["Title"] == DBNull.Value)
r["Title"] = "";
}
CopyToDataTable 应该可以解决问题:
LV_Employees.DataSource = employees.Select("Name LIKE '%" + TB_Search.Text + "%'")
.CopyToDataTable();
LV_Employees.DataBind();