[英]DataView Filter not finding match
我正在根據樹視圖中的標簽值選擇一個數據視圖行。 它在大多數情況下都可以正常工作,但是在某些情況下不會返回記錄。 我在調用過濾器之前編寫了以下代碼來測試每一行。
private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (treeView1.SelectedNode != null)
{
TreeNode tn = treeView1.SelectedNode;
Console.WriteLine(tn.Tag.ToString());
selectedTag = tn.Tag.ToString();
dv.Table = ds.Tables["ProductStruct"];
foreach (DataRow dr in dv.Table.Rows)
{
bool test = dr["uniqueID"].ToString() == tn.Tag.ToString();
Console.WriteLine(dr["uniqueID"].ToString() + " and " + tn.Tag.ToString() + test);
}
dv.RowFilter = "uniqueID = '" + tn.Tag.ToString() + "'";
Console.WriteLine(dv.RowFilter.ToString());
Console.WriteLine(dv.Count.ToString());
}
}
輸出如下:
12331233-200-00e
12331233 and 12331233-200-00eFalse
12331233-100-000 and 12331233-200-00eFalse
12331233-200-00e and 12331233-200-00eTrue
12331233-300-000 and 12331233-200-00eFalse
12331233-400-000 and 12331233-200-00eFalse
12331233-500-000 and 12331233-200-00eFalse
12331233-600-000 and 12331233-200-00eFalse
12331233-700-000 and 12331233-200-00eFalse
12331233-800-000 and 12331233-200-00eFalse
12331233-900-000 and 12331233-200-00eFalse
uniqueID = '12331233-200-00e'
0
如您所見,布爾測試對於一條記錄是正確的,但過濾器無法返回它。 感謝您的幫助,我討厭使用循環,而單行應該可以解決問題。
您運行的循環將覆蓋bool的值,並且循環次數與表中存在的行數一樣多。
在循環中,找到匹配項后,使用return進行轉義。 它不會遍歷所有行。 這將僅返回1個值。
foreach (DataRow dr in dv.Table.Rows)
{
bool test = dr["uniqueID"].ToString() == tn.Tag.ToString();
if(dr["uniqueID"].ToString() == tn.Tag.ToString()){
Console.WriteLine(dr["uniqueID"].ToString() + " and " + tn.Tag.ToString() + test);
dv.RowFilter = "uniqueID = '" + tn.Tag.ToString() + "'";
return;
}
}
如果您期望更多比賽,請移動
dv.RowFilter = "uniqueID = '" + tn.Tag.ToString() + "'";
在循環內部並使用if語句將其封裝。
foreach (DataRow dr in dv.Table.Rows)
{
bool test = dr["uniqueID"].ToString() == tn.Tag.ToString();
Console.WriteLine(dr["uniqueID"].ToString() + " and " + tn.Tag.ToString() + test);
if(dr["uniqueID"].ToString() == tn.Tag.ToString()){
dv.RowFilter = "uniqueID = '" + tn.Tag.ToString() + "'";
}
}
每當找到匹配項時,它將運行過濾器。
我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.