windowsform 응용 프로그램을 개발 중입니다. 서버 이름 목록이있는 콤보 박스와 선택된 서버 이름에 대한 데이터베이스 목록 및 선택한 데이터베이스에 대한 테이블 목록에 대한 목록으로 구성됩니다. 사용자가 servername을 선택하고 버튼을 클릭하면 서버에 데이터베이스 이름이 표시됩니다. 사용자가 마음을 바꾸고 또 다른 servername을 선택하면 여전히 동일한 데이터베이스 목록이 선택됩니다.사용자 선택을 변경하면 Combobox에서 항목 지우기
public MainForm()
{
InitializeComponent();
// FileHelper = new SqlDatabaseDataExport.FileHelper.FileUtilHelper();
dt = SmoApplication.EnumAvailableSqlServers(false);
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
ServernamesList_combobox.Items.Add(dr["Name"]);
}
// ServernamesList_combobox.Items.Add("10.80.104.30\\webx");
DisplayMainWindow("Server list added");
Logger.Log("Server List added");
}
Authentication_combobox.Items.Add("Windows Authentication");
Authentication_combobox.Items.Add("Sql Authentication");
}
/// <summary>
/// Generating list of databases with in the selected Server and list of
/// selected tables with in the selected
/// databse
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DatabasenamesList_combobox_SelectedIndexChanged(object sender, EventArgs e)
{
dbName = DatabasenamesList_combobox.SelectedItem.ToString();
connectionString = GetConnectionString();
string mySelectQuery = "select [name] from sys.tables WHERE type = 'U' AND is_ms_shipped = 0 ORDER BY [name];";
SqlConnection con = new SqlConnection(connectionString);
SqlCommand myCommand = new SqlCommand(mySelectQuery, con);
con.Open();
SqlDataReader myReader = myCommand.ExecuteReader();
try
{
while (myReader.Read())
{
SelectTables.Items.Add(myReader.GetString(0));
}
}
finally
{
myReader.Close();
con.Close();
}
}
private void button1_Click_1(object sender, EventArgs e)
{
serveName = ServernamesList_combobox.SelectedItem.ToString();
if (string.IsNullOrEmpty(serveName))
{
MessageBox.Show("Please select servername");
return;
}
if (Authentication_combobox.SelectedItem == null)
{
MessageBox.Show("Please select authentication");
return;
}
String conxString = string.Empty;
if (Authentication_combobox.SelectedItem == "Windows Authentication")
{
conxString = "Data Source=" + serveName + "; Integrated Security=True;";
}
if (Authentication_combobox.SelectedItem == "Sql Authentication")
{
if (string.IsNullOrEmpty(Username.Text))
{
MessageBox.Show("Please Enter Valid User name");
return;
}
if (string.IsNullOrEmpty(Password.Text))
{
MessageBox.Show("Please Enter Valid Password");
return;
}
conxString = "Data Source=" + serveName + "; Integrated Security=False;User ID =" + Username.Text + ";Password=" + Password.Text;
}
using (SqlConnection sqlConx = new SqlConnection(conxString))
{
try
{
sqlConx.Open();
MessageBox.Show("Connection established successfully");
}
catch (Exception ex)
{
MessageBox.Show("Exception" + ex);
MessageBox.Show(" Please enter valid Credentials");
return;
}
DataTable tblDatabases = sqlConx.GetSchema("Databases");
sqlConx.Close();
foreach (DataRow row in tblDatabases.Rows)
{
Databases.Add(row["database_name"].ToString());
}
foreach (var database in Databases)
{
DatabasenamesList_combobox.Items.Add(database);
}
}
}