首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OleDbDataAdapter填充数据表

OleDbDataAdapter填充数据表
EN

Stack Overflow用户
提问于 2012-04-30 19:11:36
回答 1查看 7K关注 0票数 1

关于填写OleDbDataAdapter的问题。

我有:

代码语言:javascript
复制
Dim cmd As OleDbCommand = New OleDbCommand(myQuery), myConnection)
Dim da As OleDbDataAdapter = New OleDbDataAdapter()
Dim dtDonnees As DataTable = New DataTable()
da.Fill(dtDonnees)

填饱要花太多时间。

20行要花20秒。

对于13万美元来说,这需要更多的时间(但不是13万秒)。

但不管怎么说,20秒太多了。

为什么要花那么多时间?

问题2:我可以跳过填充吗?

我的意思是,在填充datatable之后,我对datatable的每一行执行一次操作,并将其转换为一个实体:

代码语言:javascript
复制
Dim returnList As New List(Of myObject)(dtDonnees.Rows.Count)
For Each rowDonnee As DataRow In dtDonnees.Rows
   returnList.Add(New myObject(rowDonnee))'set every data of the row into my new object
Next

我能传递每一行OleDbDataAdapter吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-30 19:58:37

如果要尝试,可以跳过此方法的DataAdapter填充(假设不需要DataTable )。不确定你能在性能上取得多大成就。

代码语言:javascript
复制
Dim cmd As OleDbCommand = New OleDbCommand(myQuery, myConnection) 
Dim reader As OleDbDataReader = cmd.ExecuteReader()
while reader.Read()
   returnList.Add(New myObject(reader))
end while  

当然,在obiect的构造函数中,您应该读取数据并设置对象的内部状态。

代码语言:javascript
复制
Public Class myObject

   Dim myData As String
   ' other internal var to keep state of this object instance

   Public Sub New(ByVal reader as OleDbDataReader)
       myData = reader.GetString(0)
       ' read and initialize other internal data.
   End Sub
End Class
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10389224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档