嗨,我正在开发一个应用程序来从一个系统检索数据到另一个远程系统。
为此,我首先通过下面的屏幕设置应用程序的连接字符串。
当我从第一个dropdownlist中选择SQL Server时,我需要可用的DataSource namedatabase instance name之类的sa或任何安装数据库的选项都应该排在第二个dropdownlist中,当我选择DataSource available时,database name应该排在第三个dropdownlist中。
我不知道该怎么做。目前我是手动做这件事,但它是耗时和容易出错的。
我们如何才能解决它,也为MySql。

最佳答案

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

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

09-11 18:42
查看更多