我有用于在 VB 中填充数据表的 SQL SP,以及用于在 VB 表单中填充列表框/图表等的 SQL SP。在 VB 中,我尝试使用 OOP,因此使用类作为变量。在 VB 中,我有一个函数,其中包含使用 SP 提取数据的代码,我想在每次提取数据时使用这个函数,所以对于每个不同的数据请求,你都会向函数发送不同的输入和参数。
我可以为整数数据类型的输入参数实现这一点,但是我坚持对 DataTable 类型做同样的事情。如果可以的话,我想使用相同的 DataTable,但是当您再次运行该函数以填充另一个容器(列表框,然后是图表等)时,第一个容器会丢失它的数据并且是空的,因为 DataTable 加载了新数据。这当然是在使用第一个数据集填充第一个容器之后。这让我认为 DataTable 有一个指向容器的“永久”链接来保持它的填充?
这导致我尝试声明多个 DataTables 并为每个容器传递一个不同的 DataTables。在这里,我遇到了声明和传递 DataTable 类型的问题。这个问题有什么解决办法吗?另一个问题是,是否可以有一个 DataTable 类?我使用 MS SQL Server 2012 和 MS Visual Studio 2010。
这是我填充 DataTable 的函数的外观:
Public Function outputData(ByVal beg_Date, ByVal end_Date, ByVal ID1, ByVal proC, ByRef dDataTable)
If conn.State = ConnectionState.Open Then pData.Clear()
SQLcomm = New SqlClient.SqlCommand(proC, conn)
SQLcomm.CommandType = CommandType.StoredProcedure
SQLcomm.Parameters.AddWithValue("@begDate", SqlDbType.Date).Value = beg_Date
SQLcomm.Parameters.AddWithValue("@endDate", SqlDbType.Date).Value = end_Date
SQLcomm.Parameters.AddWithValue("@ID1", SqlDbType.Int).Value = ID1
aDapter.SelectCommand = SQLcomm
aDapter.Fill(dDataTable)
Return pData
End Function
proC 是 SQL 过程参数,dDataTable 是 DataTable 参数。任何提示将不胜感激。
谢谢,