Autor
|
Tema: agregar columnas al datagrid en tiempo de ejecucion (Leído 7,973 veces)
|
SAGA-gl
Desconectado
Mensajes: 45
|
buenas noches verán tengo el sig. código en el cual traigo una consulta de la bd y pongo los resultados en el datagridview....lo q qiero hacer es agregar una o mas columnas d tipo textbox y checkbox y q tngan x filas según la cantidad de renglones q devuelva la consulta en tiempo de ejecución....como lo logro? grax d antemano private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (txtNumero.Text == "") { DialogResult ds = MessageBox.Show("DEBE INGRESAR UN NRO DE ORDEN", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Text = ds.ToString(); } else if (txtNumero.Text != "") { conexion = new SqlConnection ("Data Source=GONZALOCABRERA\\SQLEXPRESS;Initial Catalog=ProyectoSalud;Integrated Security=True"); conexion.Open(); SqlCommand consulta = new SqlCommand ("select count (*) from DetalleOrdenCompra where codigoOrden=@codigo", conexion ); consulta.Parameters.AddWithValue("@codigo", Convert.ToInt32(txtNumero.Text)); int count = Convert.ToInt32(consulta.ExecuteScalar()); if (count > 0) { DialogResult result = MessageBox.Show(this, "DESEA REGISTRAR LOS DATOS?", "ORDEN DE COMPRA ENCONTRADA", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); //MessageBox.Show(consulta2.ToString()); this.Text = result.ToString(); if (result == DialogResult.OK) { //CARGAR LOS DATAGRIDVIEW SqlCommand consulta2 = new SqlCommand ("SELECT dbo.DetalleOrdenCompra.codigoMedicamento,dbo.medicamentos1.nombre_medicamento, dbo.DetalleOrdenCompra.cantidad FROM dbo.DetalleOrdenCompra INNER JOIN dbo.medicamentos1 ON dbo.DetalleOrdenCompra.codigoMedicamento = dbo.medicamentos1.id_medicamento INNER JOIN dbo.DetalleMedicamento ON dbo.medicamentos1.id_medicamento = dbo.DetalleMedicamento.id_medicamento WHERE codigoOrden=@codigo ", conexion ); consulta2.Parameters.AddWithValue("@codigo", Convert.ToInt32(txtNumero.Text)); SqlDataAdapter da = new SqlDataAdapter (consulta2 ); DataTable dt = new DataTable (); da.Fill(dt); //dgv1.AutoGenerateColumns = false; dgv1.DataSource = dt; dgv1.Columns[0].HeaderText = "CODIGO"; dgv1.Columns[0].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[0].Width = 60; dgv1.Columns[1].HeaderText = "MEDICAMENTO"; dgv1.Columns[1].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[1].Width = 211; dgv1.Columns[2].HeaderText = "CANTIDAD"; dgv1.Columns[2].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[2].Width = 80; txtNumero.Enabled = false; } else if (result == DialogResult.Cancel) { txtNumero.Text = ""; } this.Text = result.ToString(); } else { DialogResult ds = MessageBox.Show(this, "LA ORDEN INGRESADA NO SE ENCUENTRA REGISTRADA", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Text = ds.ToString(); } conexion.Close(); }
|
|
|
En línea
|
|
|
|
SAGA-gl
Desconectado
Mensajes: 45
|
lo pude solucionar....agrego a datagrid2 tantas filas como devuelva la consulta al datagrid1.....ahora como puedo hacer para que las filas del datagrid2 se puedan modificar? muchas gracias private void txtNumero_KeyDown_1(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (txtNumero.Text == "") { DialogResult ds = MessageBox.Show("DEBE INGRESAR UN NRO DE ORDEN", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Text = ds.ToString(); } else if (txtNumero.Text != "") { conexion = new SqlConnection ("Data Source=GONZALOCABRERA\\SQLEXPRESS;Initial Catalog=ProyectoSalud;Integrated Security=True"); conexion.Open(); SqlCommand consulta = new SqlCommand ("select count (*) from DetalleOrdenCompra where nro_orden=@nro", conexion ); consulta.Parameters.AddWithValue("@nro", Convert.ToInt32(txtNumero.Text)); int count = Convert.ToInt32(consulta.ExecuteScalar()); if (count > 0) { DialogResult result = MessageBox.Show(this, "DESEA REGISTRAR LOS DATOS?", "ORDEN DE COMPRA ENCONTRADA", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); //MessageBox.Show(consulta2.ToString()); this.Text = result.ToString(); if (result == DialogResult.OK) { //CARGAR LOS DATAGRIDVIEW SqlCommand consulta2 = new SqlCommand ("SELECT dbo.medicamentos1.nombre_medicamento, dbo.medicamentos1.jerarquia, dbo.DetalleOrdenCompra.cantidad FROM dbo.DetalleOrdenCompra INNER JOIN dbo.medicamentos1 ON dbo.DetalleOrdenCompra.codigoMedicamento = dbo.medicamentos1.id_medicamento WHERE nro_orden=@nro ", conexion ); consulta2.Parameters.AddWithValue("@nro", Convert.ToInt32(txtNumero.Text)); SqlDataAdapter da = new SqlDataAdapter (consulta2 ); DataTable dt = new DataTable (); da.Fill(dt); dgv1.DataSource = dt; int rows = dt.Rows.Count; dgv1.Columns[0].HeaderText = "MEDICAMENTO"; dgv1.Columns[0].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[0].Width = 211; dgv1.Columns[1].HeaderText = "JERARQUIA"; dgv1.Columns[1].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[1].Width = 180; dgv1.Columns[2].HeaderText = "CANTIDAD"; dgv1.Columns[2].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter; dgv1.Columns[2].Width = 80; for (int i = 1; i <= rows; i++) { DataGridViewRow row = (DataGridViewRow)dgv2.RowTemplate.Clone(); dgv2.Rows.Add(row); } txtNumero.Enabled = false; } else if (result == DialogResult.Cancel) { txtNumero.Text = ""; } this.Text = result.ToString(); } else { DialogResult ds = MessageBox.Show(this, "LA ORDEN INGRESADA NO SE ENCUENTRA REGISTRADA", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Text = ds.ToString(); } conexion.Close(); }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Agregar controles en tiempo de ejecucion
Programación Visual Basic
|
Garrido_jesus20
|
6
|
3,449
|
29 Marzo 2006, 21:57 pm
por Garrido_jesus20
|
|
|
enlazar en tiempo de ejecucion un datagrid
Programación Visual Basic
|
choquito
|
0
|
1,078
|
1 Marzo 2007, 21:16 pm
por choquito
|
|
|
Modificar el datagrid en tiempo de ejecucion
.NET (C#, VB.NET, ASP)
|
joalbela
|
1
|
6,910
|
10 Marzo 2011, 22:16 pm
por SRVAM
|
|
|
Agregar columnas a un datagrid
.NET (C#, VB.NET, ASP)
|
proteus8
|
4
|
6,122
|
4 Abril 2011, 21:34 pm
por proteus8
|
|
|
Agregar un JLabel en tiempo de ejecución
Java
|
zonahurbana
|
3
|
4,784
|
30 Julio 2013, 21:56 pm
por zonahurbana
|
|