1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
//Control.CheckForIllegalCrossThreadCalls = false;
}
private List<String> listServers = new List<string>();
private void frmMain_Load(object sender, EventArgs e)
{
bkWorker.RunWorkerAsync();
frmWait waitingForm = new frmWait();
waitingForm.Show();
while (bkWorker.IsBusy)
{
Application.DoEvents();
}
waitingForm.Close();
waitingForm.Dispose();
foreach (string serv in listServers)
{
if (cmbServers.Items.IndexOf(serv) < 0)
cmbServers.Items.Add(serv);
}
Server local = new Server();
string serverName = local.Name;
if (local.InstanceName != null && local.InstanceName.Length > 0)
serverName += @"\" + local.InstanceName;
Int32 idx = cmbServers.FindStringExact(serverName);
if (idx >= 0)
cmbServers.SelectedIndex = idx;
}
private void btnConnect_Click(object sender, EventArgs e)
{
this.Cursor = Cursors.WaitCursor;
btnConnect.Enabled = false;
cmbDatabases.Items.Clear();
Server server = new Server(cmbServers.Text);
server.ConnectionContext.LoginSecure = false;
server.ConnectionContext.Login = txtUser.Text;
server.ConnectionContext.Password = txtPassword.Text;
FillComboDatabases(server);
btnConnect.Enabled = true;
this.Cursor = Cursors.Default;
}
private void btnWinConnect_Click(object sender, EventArgs e)
{
this.Cursor = Cursors.WaitCursor;
btnConnect.Enabled = false;
cmbDatabases.Items.Clear();
Server server = new Server(cmbServers.Text);
server.ConnectionContext.LoginSecure = true;
FillComboDatabases(server);
btnConnect.Enabled = true;
this.Cursor = Cursors.Default;
}
private void FillComboDatabases(Server server)
{
Int32 iCount = 0;
foreach (Database db in server.Databases)
{
iCount++;
cmbDatabases.Items.Add(db.Name);
}
}
private void bkWorker_DoWork(object sender, DoWorkEventArgs e)
{
//TODO : true local et false réseau
DataTable dtSQLServer = SmoApplication.EnumAvailableSqlServers(false);
listServers.Clear();
foreach (DataRow drServer in dtSQLServer.Rows)
{
string sServer = drServer["Server"].ToString();
if (drServer["Instance"] != null && drServer["Instance"].ToString().Length > 0)
sServer += @"\" + drServer["Instance"].ToString();
listServers.Add(sServer);
}
}
private void bkWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
MessageBox.Show(e.Error.Message.ToString());
}
else
{
toolStripStatusLabel1.Text = String.Format("Nombre de serveurs trouvés : {0}", listServers.Count.ToString());
}
}
private void bkWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
}
} |
Partager