0

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

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;
}   

错误消息说此消息=无法对 System.Int32 和 System.String 执行“=”操作。在我的 rowfilter 线上。

是的,我知道有更好的方法,但我按照使用此和我提到的其他元素所需的说明进行操作。但是,如果您有时间了解什么是更好的方式来提醒您,我会很乐意提供意见。我已经在这上面添加了白发,所以任何帮助,你都是我的英雄。谢谢。
如果我需要包括任何其他部分,请告诉我,我只是不认为它应该是六英里长。

4

1 回答 1

0

尝试这个:

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

它对我有用...

于 2014-03-07T05:30:02.380 回答