Buenos dias.
Soy nuevo en c# y pues estoy haciedo una aplicacion que lee facturas, bueno la cosa esta asi, leeo de una tabla los datos de mi factura pero de un form, y lo paso a otro form, y lo que pasa es que al leer me tira un mensaje de que la conexion esta cerrada, pero en ningun momento la he cerrado, aqui le dejo el codigo para que vean, muchas gracias por su atencion.
es el codigo de la lectura
conexion = new SqlConnection();
conexion.ConnectionString = ConfigurationManager.ConnectionStrings["Fletera"].ConnectionString;
conexion.Open();
query = new SqlCommand();
query.Connection = conexion;
query.CommandText = "SELECT * FROM factura WHERE folio = '" + id + "'";
lectura = query.ExecuteReader();
if (lectura.Read())
{
txtf1.Text = lectura.GetString(0);
txtf2.Text = lectura.GetDateTime(1).ToShortDateString();
or = lectura.GetInt32(2);
de = lectura.GetInt32(3);
rfcor = lectura.GetString(4);
rfcde = lectura.GetString(5);
txtf9.Text = lectura.GetString(6);
txtf10.Text = lectura.GetString(7);
txtf11.Text = lectura.GetString(8);
txtf12.Text = lectura.GetDecimal(9).ToString();
txtf13.Text = lectura.GetDecimal(10).ToString();
txtf14.Text = lectura.GetDecimal(11).ToString();
txtf15.Text = lectura.GetDecimal(12).ToString();
txtf16.Text = lectura.GetDecimal(13).ToString();
txtotros.Text = lectura.GetDecimal(14).ToString();
txtf17.Text = lectura.GetDecimal(15).ToString();
txtf18.Text = lectura.GetDecimal(16).ToString();
txtf19.Text = lectura.GetDecimal(17).ToString();
txtf20.Text = lectura.GetDecimal(18).ToString();
txtf21.Text = lectura.GetString(20);
txtf22.Text = lectura.GetString(19);
cmbf3.Text = lectura.GetInt32(21).ToString();
}
lectura.Close();
query.CommandText = "SELECT estado FROM estados WHERE idestado = " + or + "";
lectura = query.ExecuteReader();
if (lectura.Read())
{
cmbf1.Text = lectura.GetString(0);
}
lectura.Close();
query.CommandText = "SELECT estado FROM estados WHERE idestado = " + de + "";
lectura = query.ExecuteReader();
if (lectura.Read())
{
cmbf2.Text = lectura.GetString(0);
}
lectura.Close();
query.CommandText = "SELECT nombre,direccion FROM clientes WHERE rfc = '" + rfcor + "'";
lectura = query.ExecuteReader();
if (lectura.Read())
{
txtf3.Text = lectura.GetString(0);
txtf5.Text = lectura.GetString(1);
txtf4.Text = rfcor;
}
lectura.Close();
conexion.ResetStatistics();
query.CommandText = "SELECT nombre,direccion FROM clientes WHERE rfc = '" + rfcde + "'";
lectura = query.ExecuteReader();
if (lectura.Read())
{
txtf6.Text = lectura.GetString(0);
txtf8.Text = lectura.GetString(1);
txtf7.Text = rfcde;
}
lectura.Close();
sda = new SqlDataAdapter("SELECT cantidad,descripcion,peso,volumen FROM fd WHERE folio = '" + id + "'", conexion);
ds = new DataSet();
sda.Fill(ds, "fd");
dataGridView1.DataSource = ds.Tables["fd"];
dataGridView1.Columns[0].Width = 60;
dataGridView1.Columns[1].Width = 410;
dataGridView1.Columns[2].Width = 60;
dataGridView1.Columns[3].Width = 205;
dataGridView1.Columns[0].HeaderText = "Cantidad";
dataGridView1.Columns[1].HeaderText = "Descripción";
dataGridView1.Columns[2].HeaderText = "Peso";
dataGridView1.Columns[3].HeaderText = "Volumén";
dataGridView1.AllowUserToAddRows = false;
query.Dispose();
conexion.Close();