自己在用dataview行过滤条件时写了如下语句:
DataView dv = dt.DefaultView;
DataTable dt1 = dv.ToTable(true, "names");
DataView[] dv1 = new DataView[dt1.Rows.Count];
for (int k = 0; k < dt1.Rows.Count; k++)
{
dv1[k] = dt.DefaultView;
dv1[k].RowFilter = "names=" + dt1.Rows[k]["names"]+;
}
其中names列是字符串类型的,当点调试运行时报错:异常详细信息: System.Data.EvaluateException: 未找到列 [盗窃]。
想了好半天也没明白什么意思,数据记录中有names列为“盗窃”的行啊,为什么还会报错呢,后来想了一下,是不是因为names列是字符串类型的,要用单引号括起来呢?一试改为如下: dv1[k].RowFilter = "names='" + dt1.Rows[k]["names"]+"'";
运行,果真能够成功执行!看来这些细节性的东西还是不能忽视啊!