我正在将
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)
这是正确的还是其他的?
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;