读书人

关于OleDbDataReader读取ACCESS顺序错

发布时间: 2012-01-11 22:28:46 作者: rapoo

关于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

读书人网 >C#

热点推荐