95 lines
3.3 KiB
C#
95 lines
3.3 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Data.Sql;
|
|
using System.Data.SqlClient;
|
|
using System.Windows.Forms;
|
|
|
|
namespace ServerExplorer.UI
|
|
{
|
|
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)
|
|
{
|
|
ListViewItem item = lsvServidores.Items.Add((String)dr["ServerName"]);
|
|
item.SubItems.Add((dr["InstanceName"] == DBNull.Value) ? string.Empty : (String)dr["InstanceName"]);
|
|
item.SubItems.Add((dr["Version"] == DBNull.Value) ? "???" : (String) dr["Version"]);
|
|
}
|
|
}
|
|
|
|
private void lsvServidores_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (lsvServidores.SelectedItems.Count > 0)
|
|
{
|
|
ListViewItem item = lsvServidores.SelectedItems[0];
|
|
txtServidor.Text = String.IsNullOrEmpty(item.SubItems[1].Text)
|
|
? item.SubItems[0].Text
|
|
: String.Format("{0}/{1}", item.SubItems[0].Text, item.SubItems[1].Text);
|
|
}
|
|
}
|
|
|
|
private void btnListarBBDD_Click(object sender, EventArgs e)
|
|
{
|
|
// Obtener todas las bases de datos
|
|
var cnx = new SqlConnection(BuildConnectionString());
|
|
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) return;
|
|
|
|
// Llamar a la venta de la base de datos
|
|
var frm = new FrmBaseDatos(BuildConnectionString());
|
|
FrmPrincipal.AddForm(frm);
|
|
}
|
|
|
|
private string BuildConnectionString()
|
|
{
|
|
// Construir cadena de conexion
|
|
var constructor = new SqlConnectionStringBuilder();
|
|
constructor.DataSource = (!string.IsNullOrEmpty(txtServidor.Text)) ? txtServidor.Text : "localhost";
|
|
if (lsvBBDD.SelectedItems.Count > 0)
|
|
{
|
|
constructor.InitialCatalog = lsvBBDD.SelectedItems[0].SubItems[0].Text;
|
|
}
|
|
if (String.IsNullOrEmpty(txtUsuario.Text))
|
|
{
|
|
constructor.IntegratedSecurity = true;
|
|
}
|
|
else
|
|
{
|
|
constructor.UserID = txtUsuario.Text;
|
|
constructor.Password = TxtContrasenha.Text;
|
|
}
|
|
return constructor.ConnectionString;
|
|
}
|
|
}
|
|
}
|