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.Collections; namespace ServerExplorer.UI { public partial class FrmProcedimientos : Form { private string cnxString; private SqlConnection cnx; public FrmProcedimientos(string cnxString) { InitializeComponent(); this.cnxString = cnxString; } private void frmProcedimientos_Load(object sender, EventArgs e) { DataTable dt; SqlDataAdapter da; // Establecer conexion cnx = new SqlConnection(cnxString); // Obtener un datatable con todos los procedimientos de la base de datos. da = new SqlDataAdapter( "SELECT ROUTINE_NAME Name, ROUTINE_SCHEMA [Schema], CREATED CreateDate, ROUTINE_TYPE [Type] FROM INFORMATION_SCHEMA.ROUTINES", cnx); dt = new DataTable(); cnx.Open(); da.Fill(dt); cnx.Close(); // Mostrar todos los procedimientos lsvProcs.Items.Clear(); foreach (DataRow dr in dt.Rows) { ListViewItem item = lsvProcs.Items.Add((String)dr["Name"]); item.SubItems.Add((string)dr["Schema"]); item.SubItems.Add(((DateTime)dr["CreateDate"]).ToShortDateString()); item.SubItems.Add((string)dr["Type"]); } } private void lsvProcs_SelectedIndexChanged(object sender, EventArgs e) { if (lsvProcs.SelectedItems.Count > 0) { DataTable dt; SqlDataAdapter da; string Schema, Name; Name = lsvProcs.SelectedItems[0].SubItems[0].Text; Schema = lsvProcs.SelectedItems[0].SubItems[1].Text; da = new SqlDataAdapter("SELECT ROUTINE_DEFINITION from INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME=@Name AND ROUTINE_SCHEMA=@Schema", cnx); da.SelectCommand.Parameters.AddWithValue("@Name", Name); da.SelectCommand.Parameters.AddWithValue("@Schema", Schema); dt = new DataTable(); cnx.Open(); da.Fill(dt); cnx.Close(); // Mostrar el contenido del procedimiento txtProc.Text = String.Empty; foreach (DataRow dr in dt.Rows) { txtProc.Text += ((string)dr[0]).Replace("\r", "").Replace("\n", "\r\n"); } } } } }