我试图通过在Web服务中使用OleDbDataReader从sql server读取数据,如下所示:
OleDbDataReader reader = command.ExecuteReader();
List<JPH> returnList = new List<JPH>();
while (reader.Read())
{
JPH item = new JPH();`
DateTime tmp = DBTypesEvaluator.ToDateTime(reader["POSITIONDATE"]);
item.t = Functions.GetTimeFullStringSepFormat(tmp);
item.lC = DBTypesEvaluator.ToString(reader["LOCATION"]);
item.lT = DBTypesEvaluator.ToFloat(reader["LATITUDE"]);
item.lN = DBTypesEvaluator.ToFloat(reader["LONGITUDE"]);
item.iG = DBTypesEvaluator.ToInteger(reader["IGNITION"]);
item.sP = DBTypesEvaluator.ToInteger(reader["SPEED"]);
item.oD = Functions.RoundToDigits( DBTypesEvaluator.ToFloat(reader["ODOMETER"]));
item.tF = Functions.RoundToDigits( DBTypesEvaluator.ToFloat(reader["TOTALFUEL"]));
item.fL = DBTypesEvaluator.ToString(reader["FUELLEVEL"]);
returnList.Add(item);
}
connection.Close();
return returnList;
虽然查询结果很快返回,但由于while循环,从服务返回需要很长时间。
为了解决这个问题,我试图像这样使用OleDbAdapter和DataSet:
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
DataSet ds = new DataSet();
adapter.Fill(ds);
通过使用OleDbAdapter和DataSet,我将数据分成几部分并通过多线程处理它们。 但是,在这个时候,填充功能需要很长时间。 因此,有没有办法从.net中的多线程读取查询数据? 感谢。