为数据网格视图选择不同的连接字符串

Posted

技术标签:

【中文标题】为数据网格视图选择不同的连接字符串【英文标题】:Selecting different connection strings for data gridview 【发布时间】:2015-05-12 00:16:31 【问题描述】:

为什么这不是直截了当的?我有两个数据库,每个数据库都包含一个日志表。我有一个从表中提取数据的存储过程。我在 windows 窗体上有一个 datagridview,还有一个下拉框来选择各个数据库的连接字符串。在选择 conn 字符串时,我想更改 datagridview 以包含所选数据库中的日志消息。 我的代码:

Select Case cboConnection.Text
    Case "CP DEV"
        LogConnectionString = "Data Source=SAMBAR.gofast.com;Initial Catalog=CPDev;User ID=gofastconfig;Password=gofastdev;" 
    Case "CP LIVE"
        LogConnectionString = "Data Source=SAMBAR.gofast.com;Initial Catalog=CPLive;User ID=gofastconfig;Password=gofastlive;"
End Select

Dim cmd As New SqlCommand("dbo.getLogMessages") 
Using con As New SqlConnection(LogConnectionString)
    Using sda As New SqlDataAdapter() 
        cmd.Connection = con 
        cmd.CommandType = CommandType.StoredProcedure
        sda.SelectCommand = cmd
        sda.Fill(Me.CustomerPulseDBDataSet1)
        con.Close()  
        gridLog.DataSource = Me.CustomerPulseDBDataSet1.Tables(0)
    End Using
End Using

【问题讨论】:

【参考方案1】:

首先,我没有看到您打开连接。然后,你把它弄得有点颠倒了……

Using con As New SqlConnection(LogConnectionString)
    con.Open()
    Using cmd As New SqlCommand("dbo.getLogMessages", con)
        cmd.CommandType = CommandType.StoredProcedure

        Using da As New SqlDataAdapter(cmd) 
            ' We need to clear out old data before reloading if same DS instance used
            If Me.CustomerPulseDBDataSet1.Tables.Count > 0 Then
                Me.CustomerPulseDBDataSet1.Tables.Clear()
            End If
            da.Fill(Me.CustomerPulseDBDataSet1)
        End Using  

    End Using
    con.Close()
End Using 

gridLog.DataSource = Me.CustomerPulseDBDataSet1.Tables(0)

应该每次都能完美运行

【讨论】:

我用你的代码替换了我的代码,但它似乎没有刷新 DataGridView。我是否必须初始化网格,或者我还有什么需要做的吗? @DieterStalmann 不刷新 DataGridView 是什么意思? 运行TS给出的代码时,网格中的数据没有变化 @DieterStalmann 我有一种感觉,您只是添加到现有表中而不是清除它。你看到的是第一个数据,但还有更多的数据。看我的更新。但我不确定您如何管理数据集。我的示例展示了如何正确加载它 谢谢 T.S.它现在运行良好(不幸的是,我无法对您的评论进行投票,我的“声誉”还不到 15 岁。抱歉)

以上是关于为数据网格视图选择不同的连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中连接选择器视图和标签?

粘贴网格 -- expand.grid 用于字符串连接

从 DB2 视图中获取数据

OSI——网络层

如何在 C# 中更新或刷新与 Ms-access 连接的数据网格视图

OSI 的七层模型