用ExecuteReader()读取SQL数据库中数据,符合条件的有多行,用Read()先读取一行后,如何读取一行?

谢谢各位,但我是用文本框等控件显示的,显示一行数据后,想点一下“下一步”按钮,更新显示下一行数据。最好用VB代码,我是用VB写的。万分感谢
用while(reader.Reader())之后直接显示的是最后一条,前边的数据就显示不了,引进全局变量控制也不行

SqlDataReader reader=xx.ExecuteReader();
while(reader.Reader())//判断是否还有下一条数据
{
//接受后的行内容可以在这里进行赋值,你会获取一行赋值,这里就是多行赋值,你可以先用实体类接收,然后放入list或者其他的集合当中,当需要的时候去遍历结合,或者datatable也可以,dateset也行。不知道你需要的什么方式赋值。
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-08
DataReader.Read()读取当前下一行记录,如果有多条记录可以使用
List<string> list = new List<string>();
while(DataReader.Read())
{
list.Add(DataReader.GetString(你要获取的数据的列序号));
}
循环读取
第2个回答  2011-01-08
假设读取数据表 b中的 字段a 数据内容存在一个List<string>中 a字段为 nvarchar型.
List<string> lst = new List<string>();
using(SqlConnection conn= new SqlConnection(ConnectionString))
{
string Sql="Select a From b";
SqlCommand cmd = new SqlCommand(Sql,conn);
try
{
conn.Open();
IDataReader dr= cmd.ExecuteReader();
while(dr.Read()) //不断的读数据
{
if(!Convert.IsNull("a")) lst.add( dr["a"].toString()); //读取数据放置 List中
}
}
catch(Exception ex){
throw new Exception(ex.Message);
}
finish
{
if(conn.State==ConnectionState.Open)
conn.Close();
}
}
第3个回答  2011-01-08
必须判断 Reader()
当SqlDataReader 的sdr 有内容时,才会读取,否则报错。
用if 或者 while 都可以
第4个回答  2011-01-08
where 语句
相似回答