各位大侠.进来帮帮我阿~ 关于Datatable取值问题.

gReEn368 2008-12-31 03:52:43
我在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 , 甚至将数据转成排序后的视图都没用 .

请各位大侠帮帮忙 .
我都要疯了 .
...全文
81 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
gReEn368 2008-12-31
  • 打赏
  • 举报
回复
不好意思 我新来的 . 放心啦 ... 有满意答案 我加分 ! ^.^
xfreyes 2008-12-31
  • 打赏
  • 举报
回复
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) " + " order by Engross_ID desc ");

你给的分太少了,问题这么长,别人都懒的看!!

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧