使用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。
是的,我知道有更好的方法,但我是按指令要求使用这个和我提到的其他元素。然而,如果你有时间的话,我很想听听你的意见,看看什么是更好的方法。我在这上面加上了白发,所以任何帮助,你是我的英雄。谢谢。
如果我需要包括任何其他部分,请告诉我,我只是认为不应该有六英里长。
试试这个:
IncidentTable.RowFilter = "CustomerID ="+txt_CustomerID.Text+
"AND DateClosed IS NOT NULL";