嗨,我正在开发一个应用程序来从一个系统检索数据到另一个远程系统。
为此,我首先通过下面的屏幕设置应用程序的连接字符串。
当我从第一个dropdownlist
中选择SQL Server时,我需要可用的DataSource name
或database 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");
}