记录集到数据集的转换

问题描述 投票:0回答:2

我正在将

VB6
代码转换为
C#
到目前为止,转换进展顺利,但我只是对
Recordset
转换为
Dataset
感到困惑,到目前为止,我使用数据集转换并分配了记录集数据,如下

String strData = ds.Tables[0].Rows[0]["Col"].ToString(); 
//this is in VB6 code rs!Col

此转换是否正确,如果是,我有一些记录集如下

double d = rs(somestring).Value // before this a select query executed

如何使用

dataset

进行转换
double d= double.Parse(ds.Tables[0].Rows[0]["someString"].ToString());

还有

rs.Fields(col)

这是正确的还是其他的?

c# vb6 dataset recordset
2个回答
0
投票

ado.net 中距离记录集最近的对象是 reader。 Reader 打开一个只向前只读游标并允许您读取记录。记录集和数据集之间存在基本区别。

数据集是查询数据在内存中的完整副本。一旦您在数据集中获取数据,它就不需要连接,而记录集则需要连接。如果您不想在结果中前后移动,您应该尝试阅读器。您将能够使用类似的语法从阅读器获取数据。


0
投票

你可以尝试这样的事情:-

ADODB.Connection oConn = new ADODB.Connection();
oConn.Open("Connection String", "", "", 0);
string strQuery = "";//Your select query or the query through which you are fetching data from database";
ADODB.Recordset rs = new ADODB.Recordset();
System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter();
DataTable dt = new DataTable();
rs.Open(strQuery, " Connection String,                ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly, 1);
adapter.Fill(dt, rs);
return dt;
© www.soinside.com 2019 - 2024. All rights reserved.