如何在 C# Winforms 的下拉列表控件中获取数据源名称

Posted

技术标签:

【中文标题】如何在 C# Winforms 的下拉列表控件中获取数据源名称【英文标题】:How to get the DataSource name in dropdownlist control in C# Winforms 【发布时间】:2014-01-03 10:52:59 【问题描述】:

您好,我正在开发一个应用程序来将数据从一个系统检索到另一个远程系统。

为此,我首先通过下面的屏幕设置应用程序的连接字符串。

当我从第一个 dropdownlist 选择 SQL Server 时,我需要可用的 DataSource namedatabase instance namesa 或任何安装数据库的东西,应该排在第二个 dropdownlist 和当我选择DataSource availabledatabase name 应该在第三个提示dropdownlist

我不知道该怎么做。目前我正在手动执行此操作,但它既费时又容易出错。

我们如何解决它,mysql 也是如此。

【问题讨论】:

【参考方案1】:

您可以使用以下代码获取数据库实例名称

SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
        System.Data.DataTable table = instance.GetDataSources();
        foreach (System.Data.DataRow row in table.Rows)
        
            cboServerName.Items.Add(row["ServerName"]);
        

对于该服务器中的数据库,您可以使用此代码

SqlConnection SqlCon = new SqlConnection("server=" + cboServerName.SelectedItem.ToString() + ";uid=" + txtUsername.Text + ";pwd=" + txtPassword.Text);
        try
        
            SqlCon.Open();
            //if connection was successful,fetch the list of databases available in that server
            SqlCommand SqlCom = new SqlCommand();
            SqlCom.Connection = SqlCon;
            SqlCom.CommandType = CommandType.StoredProcedure;
            SqlCom.CommandText = "sp_databases";        //sp_databases procedure used to fetch list of available databases

            SqlDataReader SqlDR;
            SqlDR = SqlCom.ExecuteReader();

            while (SqlDR.Read())
            
                cboDatabase.Items.Add(SqlDR.GetString(0));
            
        
        catch
        
            MessageBox.Show("Connection Failed...Please check username and password","Error");
        

【讨论】:

非常感谢您的解决方案..非常完美..您知道我们如何在 MySQL 上做到这一点吗..??

以上是关于如何在 C# Winforms 的下拉列表控件中获取数据源名称的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中为我的控件添加移动效果?

WinForms 中的 C# 虚拟列表视图

WinForms:使用 c# 添加控件

C# WinForms 面板子定位非常不稳定?

C# winform 下拉列表控件(comboBox)

题目要求是在c#中的combobox控件的下拉列表中添加图片。我有代码,可是有错误,图片添加部分不