日期:2014-05-20  浏览次数:20937 次

关于OleDbDataReader读取ACCESS顺序错乱的问题
我在ACCESS数据库表中存有2757条记录,每个记录的第一个字段为顺序号,但不知道为什么,跟踪发现,读取到第1943条记录时,我读到的是2482号数据,查看数据库,没有发现异常,并且,每次都是一样的现象!!请问这是什么原因???代码如下:
public   ArrayList   LoadTestData(int   sampleNumber)
{
ArrayList   testDataArray   =   new   ArrayList();

int   i=0;
string   dbCommand   =   null;
string   dbConnect   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source   =   ";
OleDbDataReader   myDataReader   =   null;
dbConnect   +=   m_UserDBName;
dbConnect   +=   "; ";

TestData   testData   =   new   TestData();

try
{
this.DBConnect(dbConnect);

dbCommand   =   string.Format( "SELECT   *   FROM   tblTestData{0} ",   sampleNumber);

DBSelect(dbCommand,   ref   myDataReader);

while(myDataReader.HasRows)
{
myDataReader.Read();

testData.number =   myDataReader.GetInt32   (0);
testData.forceValue =   myDataReader.GetDouble   (1);
testData.deformationValue =   myDataReader.GetDouble   (2);
testData.displacementValue =   myDataReader.GetDouble   (3);
testData.timeValue =   myDataReader.GetDouble   (4);

testDataArray.Add(testData);
i++;
}

myDataReader.Close();

DBDisconnect();
}
catch
{
DBDisconnect();
}

return   testDataArray;
}
private   bool   DBSelect(string   sqlCommand,   ref   OleDbDataReader   sqlReader)
{
try
{
oleDBCommand.CommandText   =   sqlCommand;

sqlReader=oleDBCommand.ExecuteReader();
}
catch(System.Data.OleDb.OleDbException   msg)
{


return   false;
}
return   true;
}

------解决方案--------------------
没具体看你的代码...

查询的时候,排个序...

for example:

select * from student order by sno asc;
or
select * from student order by sno ;
------解决方案--------------------
SQL语句中加上Order By ID来达到排序效果。
------解决方案--------------------
加上排序字段
dbCommand = string.Format( "SELECT * FROM tblTestData{0} order by number ", sampleNumber);

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070127

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html