136 lines
4.4 KiB
C#
136 lines
4.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.Data.Sql;
|
|
using System.Data.SqlClient;
|
|
using System.Data.SqlTypes;
|
|
|
|
namespace ServerExplorer
|
|
{
|
|
public partial class FrmServidores : Form
|
|
{
|
|
public FrmServidores()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void Form1_Load(object sender, EventArgs e)
|
|
{
|
|
}
|
|
|
|
private void btnListarServidores_Click(object sender, EventArgs e)
|
|
{
|
|
// Obtener listado de servidores
|
|
SqlDataSourceEnumerator enumerador = SqlDataSourceEnumerator.Instance;
|
|
DataTable servidores = enumerador.GetDataSources();
|
|
lsvServidores.Items.Clear();
|
|
lsvBBDD.Items.Clear();
|
|
foreach (DataRow dr in servidores.Rows)
|
|
{
|
|
// Nombre del servidor
|
|
ListViewItem item = lsvServidores.Items.Add((String)dr["ServerName"]);
|
|
|
|
// Nombre de la instancia
|
|
if (dr["InstanceName"] == System.DBNull.Value)
|
|
{
|
|
item.SubItems.Add("");
|
|
}
|
|
else
|
|
{
|
|
item.SubItems.Add((String)dr["InstanceName"]);
|
|
}
|
|
|
|
// Numero de version
|
|
if (dr["Version"] == System.DBNull.Value)
|
|
{
|
|
item.SubItems.Add("???");
|
|
}
|
|
else
|
|
{
|
|
item.SubItems.Add((String)dr["Version"]);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void lsvServidores_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (lsvServidores.SelectedItems.Count > 0)
|
|
{
|
|
ListViewItem item = lsvServidores.SelectedItems[0];
|
|
if (item.SubItems[1].Text.CompareTo("") == 0)
|
|
{
|
|
// Servidor sin subinstancias
|
|
txtServidor.Text = item.SubItems[0].Text;
|
|
}
|
|
else
|
|
{
|
|
// Servidor con subinstancias
|
|
txtServidor.Text = item.SubItems[0].Text + "/" + item.SubItems[1].Text;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void btnListarBBDD_Click(object sender, EventArgs e)
|
|
{
|
|
// Construir cadena de conexion
|
|
SqlConnectionStringBuilder constructor = new SqlConnectionStringBuilder();
|
|
constructor.DataSource = txtServidor.Text;
|
|
if (String.IsNullOrEmpty(txtUsuario.Text))
|
|
{
|
|
constructor.IntegratedSecurity = true;
|
|
}
|
|
else
|
|
{
|
|
constructor.UserID = txtUsuario.Text;
|
|
constructor.Password = TxtContrasenha.Text;
|
|
}
|
|
|
|
// Obtener todas las bases de datos
|
|
SqlConnection cnx = new SqlConnection(constructor.ConnectionString);
|
|
cnx.Open();
|
|
DataTable dt = cnx.GetSchema("Databases");
|
|
cnx.Close();
|
|
|
|
|
|
// Mostrar bases de datos
|
|
lsvBBDD.Items.Clear();
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
ListViewItem item = lsvBBDD.Items.Add((String)dr["database_name"]);
|
|
item.SubItems.Add(((DateTime)dr["create_date"]).ToShortDateString());
|
|
}
|
|
}
|
|
|
|
|
|
private void lsvBBDD_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
if (lsvBBDD.SelectedItems.Count == 1)
|
|
{
|
|
// Construir cadena de conexion final
|
|
SqlConnectionStringBuilder constructor = new SqlConnectionStringBuilder();
|
|
constructor.DataSource = txtServidor.Text;
|
|
constructor.InitialCatalog = (String)lsvBBDD.SelectedItems[0].SubItems[0].Text;
|
|
if (txtUsuario.Text.CompareTo("") == 0)
|
|
{
|
|
constructor.IntegratedSecurity = true;
|
|
}
|
|
else
|
|
{
|
|
constructor.UserID = txtUsuario.Text;
|
|
constructor.Password = TxtContrasenha.Text;
|
|
}
|
|
|
|
// Llamar a la venta de la base de datos
|
|
FrmBaseDatos frm = new FrmBaseDatos(constructor.ConnectionString);
|
|
frm.MdiParent = this.MdiParent;
|
|
frm.Show();
|
|
}
|
|
}
|
|
}
|
|
}
|