使用RowFilter属性在数据视图中创建复合条件,使其等于由空值输入的值

本文关键字:空值 输入 条件 属性 RowFilter 数据 视图 复合 创建 使用 | 更新日期: 2023-09-27 18:09:13

我很确定我已经通过查找我在这个问题上所能做的一切来混淆自己,但无法确定我做错了什么。我想我做错了不止一件事,所以我可以使用任何帮助,你可能会看到需要改进。我需要一个用户输入他们的客户id在一个页面上的调查,将填充时提交按钮单击列表框。提交应该只检索客户已关闭的事件,并只返回这些事件,并生成一条消息,说明没有任何事件可供他们调查。我知道我在rowfilter =部分没有正确的引号,所以任何帮助都是非常感谢的。
我应该使用数据视图来过滤行,以便仅显示该客户的已关闭事件。我应该将rowfilter属性设置为复合条件,其中customerID等于他们输入的文本框,并且datecclosed不为空。

protected void btnGetIncidents_Click(object sender, EventArgs e)
{
    DataView IncidentsTable = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
    IncidentsTable.RowFilter = "CustomerID = 'txtCustomerID.Text + And DateClosed is Not Null'";
    DataRowView row = (DataRowView)IncidentsTable[0];
    if (IncidentsTable.Count > 0)
    {
        this.DisplayIncidents();
        this.Enable(true);
        lstIncident.Focus();
    }
}
private void DisplayIncidents()
{
    lstIncident.Items.Add(new ListItem("--Select an Incident--"));
    foreach (DataRowView row in IncidentsTable)
    {
        Incident i = new Incident();
        i.IncidentID = Convert.ToInt32(row["IncidentID"]);
        i.ProductCode = row["ProductCode"].ToString();
        i.DateClosed = Convert.ToDateTime(row["DateClosed"]);
        i.Title = row["Title"].ToString();
        lstIncident.Items.Add(new ListItem(i.CustomerIncidentDisplay(), i.IncidentID.ToString()));
    }
    lstIncident.SelectedIndex = 0;
}   

错误消息显示此消息=无法在系统上执行'='操作。Int32和System.String。

是的,我知道有更好的方法,但我是按指令要求使用这个和我提到的其他元素。然而,如果你有时间的话,我很想听听你的意见,看看什么是更好的方法。我在这上面加上了白发,所以任何帮助,你是我的英雄。谢谢。
如果我需要包括任何其他部分,请告诉我,我只是认为不应该有六英里长。

使用RowFilter属性在数据视图中创建复合条件,使其等于由空值输入的值

试试这个:

IncidentTable.RowFilter = "CustomerID ="+txt_CustomerID.Text+ 
                          "AND DateClosed IS NOT NULL";