【发布时间】:2013-12-27 19:04:14
【问题描述】:
我正在尝试将配置设置加载到一组数据表中,然后断开与数据库的连接。我确定我做错了什么,因为 DataTables 之后是空的。代码如下:
全班第一:
'Set up Configuration DataTables
Dim dtDataAlerts As New DataTable
运行例程以获取数据:
Public Sub ReadDataAlerts()
'Read the configuration for the Data Alerts from the RDB
dtDataAlerts = GetRecordSet("SELECT DataAlertGroups.DataAlertGroup_UID, DataAlertGroups.EmailGroup_UID, DataAlertGroups.EmailTemplate_UID, EmailTemplates.EmailTemplate_CustomSubject, EmailTemplates.EmailTemplate_CustomMessage FROM (DataAlertGroups INNER JOIN EmailGroups ON DataAlertGroups.EmailGroup_UID=EmailGroups.EmailGroup_UID) INNER JOIN EmailTemplates ON DataAlertGroups.EmailTemplate_UID=EmailTemplates.EmailTemplate_UID")
End Sub
获取DataTable的例程
Function GetRecordSet(SQLString As String) As DataTable
'function used to run a query and return a disconnected DataTable
Try
'Create Dataset, Open Connection
Dim dsPWC As New DataSet()
Dim OleDbDataAdapter1 As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter(SQLString, sqlConn)
sqlConn.Open()
'Fill the Dataset with the PlantWatchConfiguration Table
OleDbDataAdapter1.Fill(dsPWC, "CollectorAlertGroups")
'Create Table from Dataset and iterate data
Dim DT As New DataTable
Dim DTClone As New DataTable
DT = dsPWC.Tables(0)
DTClone = DT.Clone
'Close Connection
sqlConn.Close()
Return DTClone
Catch ex As Exception
WriteToLog(ex.Message, "GetRecordSet")
End Try
End Function
我知道 SQL 是正确的,因为我已经针对 RDB 运行它并产生了结果。我的代码中有大量的日志记录文件,所以我确信数据库连接正确。 (和其他直接查询拉回数据就好了)
但是我在 GetRecordSet 函数上做错了。我认为我没有正确克隆和断开连接?
无论如何...我相信这很简单,因为我不是编码专家 :)
谢谢。
【问题讨论】:
-
无需克隆。数据表已经是一个断开的对象