[英]DataTable.Select string/int comparison
我疯狂地找到一个原因,我的网格没有正确显示,发现我比较了一个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号码是? 这是一个错误吗?
似乎是内部字符串/ int比较中的错误(功能?)。 您必须添加单引号以将数据作为字符串进行比较,或者如果您需要将它们作为整数进行比较并且您打开使用LINQ,则可以执行类似的操作
int i = tab.AsEnumerable().Where(x => Convert.ToInt32(x["age"]) == 8).Count(); // 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.