Problema con SQLCommad
Tengo un problema tengo un sqlcommand donde hago una consulta a la base ded datos con un select
Después de eso tengo un sqldatareader con un while para que este dentro del ciclo mientras la consulta no termine
Pero mi problema es que dentro del while yo quiero hacer un insert con alguno de los datos obtenidos de la consulta.
Te adujunto el código
Library.SQL += " select datemov, " +
" kgmin, kgdelivery from consumedfeed " +
" where id_cage = '" + TabGraficoAn.SelectedTab.Text + "'" +
" and datemov between convert(datetime, '" + FirstDay + "', 102) and convert(datetime, '" + LastDay + "', 103) ";
SqlCommand SQL = new SqlCommand(Library.SQL, Library.Conn);
Library.SQL_Read = SQL.ExecuteReader();
while (Library.SQL_Read.Read())
{
Id_Racion = byte.Parse(((ImageComboBoxItem)CmbPortion.Properties.Items[CmbPortion.SelectedIndex]).Value.ToString());
Id_Cage = TabGraficoAn.SelectedTab.Text;
HoraIn = DateTime.Parse(Library.SQL_Read["datemov"].ToString());
HoraEnd = DateTime.Parse(Library.SQL_Read["datemov"].ToString());
dif = HoraEnd.Subtract(HoraIn);
Diferencia = string.Format("{0:hh:mm:ss}",dif.ToString());
DateReal = DateTime.Parse(Library.SQL_Read["datemov"].ToString());
Hora = DateReal.ToLongTimeString();
Fecha = DateTime.Parse(Library.SQL_Read["datemov"].ToString());
Fec = string.Format("{0:dd/mm/yyyy}", DateTime.Parse(Library.SQL_Read["datemov"].ToString()));
Kgmin=double.Parse (Library.SQL_Read["kgmin"].ToString());
KgDelivery = double.Parse(Library.SQL_Read["KgDelivery"].ToString());
Library.SQL = "insert into feedinganalysis(id_cage, fecha, id_racion, kgmin, hora, diferencia, kgdelivery, datereal) values(@id_cage,@fecha,@id_racion,@kgmin,@hora,@diferencia,@KgDelivery ,@DateReal)";
NewUpd = new SqlCommand(Library.SQL, Library.Conn);
NewUpd.Parameters.Add("@id_cage", SqlDbType.VarChar,50).Value = Id_Cage;
NewUpd.Parameters.Add("@fecha", SqlDbType.VarChar, 50).Value = Fec;
NewUpd.Parameters.Add("@id_racion", SqlDbType.TinyInt).Value = Id_Racion;
NewUpd.Parameters.Add("@kgmin", SqlDbType.Float).Value = Kgmin;
NewUpd.Parameters.Add("@hora", SqlDbType.VarChar,50).Value = Hora;
NewUpd.Parameters.Add("@diferencia", SqlDbType.VarChar, 50).Value = Diferencia;
NewUpd.Parameters.Add("@KgDelivery", SqlDbType.Float).Value = Math.Round(KgDelivery, 3);
NewUpd.Parameters.Add("@DateReal", SqlDbType.DateTime).Value = DateReal;
NewUpd.ExecuteNonQuery();
}
Library.SQL_Read.Close();
Después de eso tengo un sqldatareader con un while para que este dentro del ciclo mientras la consulta no termine
Pero mi problema es que dentro del while yo quiero hacer un insert con alguno de los datos obtenidos de la consulta.
Te adujunto el código
Library.SQL += " select datemov, " +
" kgmin, kgdelivery from consumedfeed " +
" where id_cage = '" + TabGraficoAn.SelectedTab.Text + "'" +
" and datemov between convert(datetime, '" + FirstDay + "', 102) and convert(datetime, '" + LastDay + "', 103) ";
SqlCommand SQL = new SqlCommand(Library.SQL, Library.Conn);
Library.SQL_Read = SQL.ExecuteReader();
while (Library.SQL_Read.Read())
{
Id_Racion = byte.Parse(((ImageComboBoxItem)CmbPortion.Properties.Items[CmbPortion.SelectedIndex]).Value.ToString());
Id_Cage = TabGraficoAn.SelectedTab.Text;
HoraIn = DateTime.Parse(Library.SQL_Read["datemov"].ToString());
HoraEnd = DateTime.Parse(Library.SQL_Read["datemov"].ToString());
dif = HoraEnd.Subtract(HoraIn);
Diferencia = string.Format("{0:hh:mm:ss}",dif.ToString());
DateReal = DateTime.Parse(Library.SQL_Read["datemov"].ToString());
Hora = DateReal.ToLongTimeString();
Fecha = DateTime.Parse(Library.SQL_Read["datemov"].ToString());
Fec = string.Format("{0:dd/mm/yyyy}", DateTime.Parse(Library.SQL_Read["datemov"].ToString()));
Kgmin=double.Parse (Library.SQL_Read["kgmin"].ToString());
KgDelivery = double.Parse(Library.SQL_Read["KgDelivery"].ToString());
Library.SQL = "insert into feedinganalysis(id_cage, fecha, id_racion, kgmin, hora, diferencia, kgdelivery, datereal) values(@id_cage,@fecha,@id_racion,@kgmin,@hora,@diferencia,@KgDelivery ,@DateReal)";
NewUpd = new SqlCommand(Library.SQL, Library.Conn);
NewUpd.Parameters.Add("@id_cage", SqlDbType.VarChar,50).Value = Id_Cage;
NewUpd.Parameters.Add("@fecha", SqlDbType.VarChar, 50).Value = Fec;
NewUpd.Parameters.Add("@id_racion", SqlDbType.TinyInt).Value = Id_Racion;
NewUpd.Parameters.Add("@kgmin", SqlDbType.Float).Value = Kgmin;
NewUpd.Parameters.Add("@hora", SqlDbType.VarChar,50).Value = Hora;
NewUpd.Parameters.Add("@diferencia", SqlDbType.VarChar, 50).Value = Diferencia;
NewUpd.Parameters.Add("@KgDelivery", SqlDbType.Float).Value = Math.Round(KgDelivery, 3);
NewUpd.Parameters.Add("@DateReal", SqlDbType.DateTime).Value = DateReal;
NewUpd.ExecuteNonQuery();
}
Library.SQL_Read.Close();
1 Respuesta
Respuesta de Luis Angel Octavio Alcaraz Barajas
1