グリッドが正しく表示されない理由を見つけるのに夢中になり、' (引用符) を使用せずに (数値のみの) varchar 列を比較することがわかりました。問題は、一部の番号では選択が一致し、他の番号では選択が一致しないことです。
これは例です:
DataTable tab = new DataTable();
tab.Columns.Add("age", typeof(String));
DataRow row1 = tab.NewRow();
row1["age"] = "8";
tab.Rows.Add(row1);
DataRow row2 = tab.NewRow();
row2["age"] = "15";
tab.Rows.Add(row2);
Console.WriteLine("Rows with age 8="+ tab.Select("age=8").Length);
Console.WriteLine("Rows with age 15=" + tab.Select("age=15").Length);
出力は次のとおりです。
Rows with age 8=0
Rows with age 15=1
なぜ 8 の数字が一致せず、15 の数字が一致するのですか? これはバグですか?