dataReader怎么记录指针移到行尾,并取取得记录
请问dataReader怎么记录指针移到行尾,并取取得记录
--------------------编程问答-------------------- 行尾?还是数据集尾?
--------------------编程问答-------------------- 只能用SqlDataReader.Read方法读取下一条,没有别的方法了.
你可以检测一下用Read读到的行是不是最后一行. --------------------编程问答-------------------- 楼主 既然是 读取 最后一条
何不 直接select top 1 呢!
comm.ExecuteScalar()不更好 --------------------编程问答-------------------- 如果是想取最后一记录的话,你可以先把数据填充到一个DataTable然后使用索引直接取出最后一条. --------------------编程问答-------------------- comm.ExecuteScalar()不更好
--------------
这只能取第一行第一列,楼主应该是想要取的是最后一整条记录. --------------------编程问答-------------------- sql里倒序 然后ExecuteScalar;(hertcloud(·£孙子兵法£·) (说的对的)
// 数据库连接字符串
string ConnStr = "server=hm;database=cn;User Id=sa";
// 创建插入SQL语句及调用@@identity函数返回标识值
string insert_query = "insert into 旅游 (城市,景点) values ('IT', 'Internet');"
+ "SELECT @@identity AS 'identity';";
// 执行数据库操作
SqlCommand myCommand = new SqlCommand(insert_query, new SqlConnection(ConnStr));
myCommand.Connection.Open();
myLabel.Text = myCommand.ExecuteScalar().ToString();
myCommand.Connection.Close(); --------------------编程问答-------------------- hertcloud(·£孙子兵法£·) ( ) 信誉:100 Blog 2007-03-14 16:33:15 得分: 0
楼主 既然是 读取 最后一条
何不 直接select top 1 呢!
支持
--------------------编程问答-------------------- 如果没有特殊要求的话,可以在sql语句上处理:
select top 1 from
(
--子查询
select * from a
) as b
order by DESC
然后SqlDataReader.Read的第一条也是唯一一条也是你想要的数据集的最后一条. --------------------编程问答-------------------- select top 1 --------------------编程问答--------------------
select top 1 from
(
--子查询
select * from a where {条件}
) as b
order by id DESC --------------------编程问答-------------------- 是数据集尾
这是asp版的,
sqlOrder="select * From 表"
set rsOrder=server.CreateObject("adodb.recordset")
rsOrder.open sqlOrder,conn,1,3
i=1
do while not rsOrder.eof
--执行操作
rsOrder.movenext
loop
rsOrder.movenext
if rsOrder.eof then
--执行操作
else
--执行操作
end if
rsOrder.close
set rsOrder=nothing
我现在想在C# 用datareader代替rs --------------------编程问答-------------------- hertcloud(·£孙子兵法£·) ( ) 信誉:100 Blog 2007-03-14 16:33:15 得分: 0
楼主 既然是 读取 最后一条
何不 直接select top 1 呢!
-----------
这个我当然会啦!!
我现在是想实现上面的功能 --------------------编程问答-------------------- 高手在吗?
这是asp版的,
sqlOrder="select * From 表"
set rsOrder=server.CreateObject("adodb.recordset")
rsOrder.open sqlOrder,conn,1,3
i=1
do while not rsOrder.eof
--执行操作
rsOrder.movenext
loop
rsOrder.movenext--------------------------注意这里
if rsOrder.eof then
--执行操作
else
--执行操作
end if
rsOrder.close
set rsOrder=nothing
我现在想在C# 用datareader代替rs
--------------------编程问答-------------------- datereader是轻量级的,只读的,只能向前逐条滚动 --------------------编程问答-------------------- 那有其它方法吗 --------------------编程问答-------------------- dr.close()
之后就可以获得记录总数
有个属性叫什么effecitrecords就可以了 --------------------编程问答-------------------- 呵呵 --------------------编程问答-------------------- datereader是轻量级的,只读的,只能向前逐条滚动
说的没错。 --------------------编程问答-------------------- 先获取总行数.
int count=dr.rows.count;
然后
string userName=dr.rows[count-1].columns["name"].tostring(); --------------------编程问答-------------------- 如果你的是自动编号的话。也可以用select max("自动编号列“) from 表
--------------------编程问答-------------------- chuxue1342(@楚}===天{==========雪饮>)
========================
请看清楚题目........
补充:.NET技术 , ASP.NET