DataTable.Select() 方法不准确?

2025-02-22 22:26:15
推荐回答(5个)
回答1:

因为在select中Cor_value变成了字符串,其实比较的时候是“130”和90比较,所以查询出的结果有误,至于Select函数内部算法我也不知道...
为了验证我说的话,你可以试试调试的时候看看drs[i]["Cor_value"]的DataType,或者输出的时候这样写:lbl.Text += drs[i]["Cor_value"].ToString() +drs[i]["Cor_value"].GetType()+ " ";

回答2:

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条

回答3:

把那sql语句直接查询一下看究竟有几行?另外你改一下代码
lbl.Text +=ToString() + drs[i]["Cor_value"].ToString() + " ";
看看是不是label显示的问题。

回答4:

这个问题我也遇到过,你看一下Cor_value的数据类型。

回答5:

是不是Label显示的问题?仅从上面贴出来代码应该没有什么问题