因为在select中Cor_value变成了字符串,其实比较的时候是“130”和90比较,所以查询出的结果有误,至于Select函数内部算法我也不知道...
为了验证我说的话,你可以试试调试的时候看看drs[i]["Cor_value"]的DataType,或者输出的时候这样写:lbl.Text += drs[i]["Cor_value"].ToString() +drs[i]["Cor_value"].GetType()+ " ";
string sql = @"SELECT ID, Cor_name, Cor_value, Cor_teacher, Cor_time FROM dbo.Course";
DataTable dt = this.getDataTable(sql);
foreach(DataRow row in dt.Rows){
lbl.Text += row["Cor_value"].ToString() + " ";
}
lbl.Text += "
";
DataRow[] drs = dt.Select("Cor_value < 90");
for (int i = 0; i < drs.Length; i++)
{
lbl.Text += drs[i]["Cor_value"].ToString() + " ";
}
你用上面的代码调试一下,看看是不是旧数据就只有4条
把那sql语句直接查询一下看究竟有几行?另外你改一下代码
lbl.Text +=ToString() + drs[i]["Cor_value"].ToString() + " ";
看看是不是label显示的问题。
这个问题我也遇到过,你看一下Cor_value的数据类型。
是不是Label显示的问题?仅从上面贴出来代码应该没有什么问题