使用 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();