C# 过滤器表达式';名字';不计算为布尔项

C# 过滤器表达式';名字';不计算为布尔项,c#,asp.net,datatable,dataset,C#,Asp.net,Datatable,Dataset,我正在绑定一个DropDownList,我在第一列中有FirstName,在第二列中将LastName作为DDL protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e) { DataTable myTable = new DataTable(); DataColumn productIDColumn = new DataColumn("FirstName"); DataC

我正在绑定一个DropDownList,我在第一列中有FirstName,在第二列中将LastName作为DDL

protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
{ 
    DataTable myTable = new DataTable();
    DataColumn productIDColumn = new DataColumn("FirstName");
    DataColumn productNameColumn = new DataColumn("LastName");

    myTable.Columns.Add(productNameColumn);
    DataSet ds = new DataSet();

    ds = get();
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        var categoryID = (e.Row.Cells[0].Text);
        var expression = "FirstName "+categoryID;

        DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");

        DataRow[] rows = ds.Tables[0].Select(expression);
        foreach (DataRow row in rows)
        {
            DataRow newRow = myTable.NewRow();
            newRow["UserId"] = row["UserId"];
            newRow["LastName"] = row["LastName"];
            myTable.Rows.Add(newRow);
        }

        ddl.DataSource = myTable;
        ddl.DataTextField = "LastName";
        ddl.DataValueField = "UserId";
        ddl.DataBind();
    }
}
我在DataRow[]rows=ds.Tables[0]处收到一个错误,如
筛选器表达式“FirstName”的计算结果不是布尔项


谁能帮我一下吗?

你的表情毫无意义。我希望有以下几点:

var expression = "FirstName = 'John'";


查看选择方法的文档:

您需要比较表达式中的两个值。阅读本文:

在这种上下文中,“DDL”是指下拉列表吗?哎呀,我不知道,但即使我喜欢DDL是空的。即使我比较了这些值,DDL也是空的。你确定你的表达式是正确的吗?您正在将FirstName与ID进行比较(或者看起来就是这样):var expression=“FirstName=“+categoryID;问题是categoryid也为空不知道为什么??将categoryid键添加到GridView1的DataKeyNames中。然后,在GridView1_RowDataBound1事件中获取ID:if(e.Row.RowType==DataControlRowType.DataRow){DataRowView rowView=(DataRowView)e.Row.DataItem;int myDataKey=Convert.ToInt32(rowView[“categoryID]”);但是填充DDL时,数据表为空。
var expression = "CategoryId = 42";