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
Código (csharp) [Seleccionar]
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();
}