如何在C#Winforms中的dropdownlist控件中获取DataSource名称

时间:2013-12-16 05:49:41

标签: c# mysql winforms connection-string

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

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

Control panel

当我从第一个dropdownlist选择SQL Server时,我需要提供可用的DataSource namedatabase instance name sa或任何安装数据库的内容,应该是第二个dropdownlist,当我选择DataSource available时,database name应该会在第3个dropdownlist中提示。

我对此怎么做都不知道。目前我手动执行此操作但耗时且容易出错。

我们如何解决它以及MySql。

1 个答案:

答案 0 :(得分:3)

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

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");
        }