怎么把DataReader中的记录赋给数组

来源:百度知道 编辑:UC知道 时间:2024/06/13 21:48:42
帮忙看看下面怎么改,数据库是用access做的,测试可以连接上,F5的时候在"myString[i] = reader.GetValue(i).ToString();"处会提示错误:不存在此行/列的数据
现在极度迷糊中,求教了
---------------------------------------------------------------------------------------------
try
{
//打开连接
conn.Open();

//为命令对象附加连接
command.Connection = conn;

//获取Data Reader
OleDbDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);

//获取reader中的记录数
int count = 0;
while (reader.Read())
{
count++;
}

//创建数组并赋值
string[] myString = new string[count];
for (int i = 0; i < count; i++)
{
myString[i] = reader.

datareader是向前的读取数据的方式,不能回头读取上一条纪录,你在获取count时已经读了一次了,所以没有数据了,而且你要记得当用了,reader.read()之后,必须执行reader.close();否则下次使用datareader时就出错了
while (reader.Read()) 这句话就表示通过循环读取数据了,你可以在这里就执行赋值给数组的语句了,不用使用count了,因为你也知道while执行的次数就是reader里的行数啊
int i = 0
while (reader.Read())
{
myString[i] = reader.GetValue(i).ToString();
i++;
}