各位大侠.进来帮帮我阿~ 关于Datatable取值问题.
我在CS文件中是这样写的
Engross con = new Engross();
DataTable dt = new DataTable();
dt = con.SelEngross(ParcelID);
PlusOne = Convert.ToInt32(dt.Rows[0]["Engross_PlusOne"]);
这个是类文件(Engross)
public DataTable findMessage(string sql)
{
DataSet ds = new DataSet();//new一个数据集
using (SqlConnection con = new SqlConnection(connString))
{
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
sda.Fill(ds, "tables");
}
return ds.Tables["tables"];//返回一个table
}
public DataTable SelEngross(string ParcelID)
{
string sql = string.Format(" select Engross_ID, Engross_Code ,Engross_PlotID ,Engross_PlusOne from Engross where Engross_PlotID = '" + ParcelID + " ' and Engross_ID = (select Max(Engross_ID) from Engross) ");
return findMessage(sql);//db调用findMessage()方法返回datatable
}
这个SQL语句没有错,可以查询出最新一条数据记录 .
但是在业务逻辑层代码中 取出的数据始终是下标为0的 怎么也取不到最新的一条(最新的一条数据可以理解为判断条件成立的情况下Engross_ID最大的一条记录).
注: 是直接从数据库取 ,不经过任何控件 .
dt.Rows[0]["Engross_PlusOne"] 这个应该是二维数组数据.取得是第一条记录的 Engross_PlusOne 值 .
错误虽然知道错在哪 但是该用什么方法在逻辑层把我想要的数据取出来(我想要取的数据 是所谓的最新的一条记录. )
用了DataRow , DataView , 甚至将数据转成排序后的视图都没用 .
请各位大侠帮帮忙 .
我都要疯了 .