记录集到数据集的转换

本文关键字:转换 数据集 记录 | 更新日期: 2023-09-27 18:04:17

到目前为止,我正在将VB6代码转换为C#,转换进行得很好,但我只是对RecordsetDataset的转换感到困惑,所以我使用数据集转换并分配了记录集数据,如下所示

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)

它是正确的还是其他的?

记录集到数据集的转换

ado.net中最接近记录集的对象是reader。读卡器打开一个仅向前只读的游标,允许您读取记录。记录集和数据集之间有一个基本的区别。

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

您可以尝试以下操作:-

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;