您好我正在开发一个应用程序,用于将数据从一个系统检索到另一个远程系统。
为此,我首先在屏幕下方设置应用程序的连接字符串。
当我从第一个dropdownlist
选择SQL Server时,我需要提供可用的DataSource name
或database instance name
sa
或任何安装数据库的内容,应该是第二个dropdownlist
,当我选择DataSource available
时,database name
应该会在第3个dropdownlist
中提示。
我对此怎么做都不知道。目前我手动执行此操作但耗时且容易出错。
我们如何解决它以及MySql。
答案 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");
}