2016-12-28 50 views
-1

我有一个从列表中检索数据的问题,我必须获取每个选定记录的信息,并且我可以这样做,但我在列表中有这些数据,我需要它在文本框,我有我的应用程序工作类,这是我的数据层:从列表中检索值<>

public List<Cajas> cajas_upd_cons_caja_detalle(string clienteCodigo, string cajaCodigo, int cajaNumero) 
{ 
    List<Cajas> ListCaj_x_Cod_CajNum = new List<Cajas>(); 
    string storedProcedure = "CAJAS_UPD_CONS_CAJA_DETALLE"; //stored procedure 

    using (DbConnection con = dpf.CreateConnection()) 
    { 
     con.ConnectionString = conStr; 
     using (DbCommand cmd = dpf.CreateCommand()) 
     { 
      cmd.Connection = con; 
      cmd.CommandText = storedProcedure; 
      cmd.CommandType = CommandType.StoredProcedure; 

      DbParameter param1 = cmd.CreateParameter(); 
      param1.DbType = DbType.String; 
      param1.ParameterName = "CLIENTE_CODIGO"; //param 
      param1.Value = clienteCodigo.Replace(" ", ""); 
      cmd.Parameters.Add(param1); 

      DbParameter param2 = cmd.CreateParameter(); 
      param2.DbType = DbType.String; 
      param2.ParameterName = "CAJA_CODIGO"; //param 
      param2.Value = cajaCodigo.Replace(" ", ""); 
      cmd.Parameters.Add(param2); 

      DbParameter param3 = cmd.CreateParameter(); 
      param3.DbType = DbType.String; 
      param3.ParameterName = "CAJA_NUMERO"; //param 
      param3.Value = cajaNumero; 
      cmd.Parameters.Add(param3); 

      con.Open(); 
      cmd.ExecuteNonQuery(); 
      using (DbDataReader dr = cmd.ExecuteReader()) 
      { 
       while (dr.Read()) 
       { 
        try 
        { 
         //THIS IS MY CLASS 
         Cajas caja = new Cajas(); // 

         caja.CajaContenido = dr["CONTENIDO"].ToString(); 
         caja.CajaEstado = dr["EST"].ToString(); 
         caja.FecEmisionDoc = Convert.ToDateTime(dr["EMISION"].ToString()); 
         caja.FecCaducidDoc = Convert.ToDateTime(dr["CADUCIDAD"].ToString()); 
         caja.CajaUbi1 = dr["UBI1"].ToString(); 
         caja.CajaUbi2 = dr["UBI2"].ToString(); 
         ListCaj_x_Cod_CajNum.Add(caja); 
        } 
        catch (System.InvalidCastException) 
        { } 
       } 
      } 
     } 
    } 
    return ListCaj_x_Cod_CajNum; 
} 

这是我的介绍类:

protected void Page_Load(object sender, EventArgs e) 
{ 
    UpdCadDet_limpiarCampos(); 
    if (!IsPostBack) 
    { 
     clienteCodigo = Request.QueryString["cliCod"]; 
     cajaCodigo = Request.QueryString["cajCod"]; 
     cajaNumero = Request.QueryString["cajNum"]; 
     lblUpdCajDet_CliCod.Text = clienteCodigo; 
     lblUpdCajDet_CajCod.Text = cajaCodigo; 
     lblUpdCajDet_CajNum.Text = cajaNumero; 

     //this is only for testing 
     List<Cajas> cajastest = cajaUpd_BL.cajas_upd_cons_caja_detalle (clienteCodigo, cajaCodigo, Convert.ToInt32(cajaNumero)); 

    } 
} 

若y调试应用程序,我可以看到的值检索从数据库,但我的问题是我怎样才能让他们在我的演讲课(在GUI中)。

我希望有人请帮助我。

问候

+2

旁注:你正在执行查询两次,'的ExecuteNonQuery '和'ExecuteReader'。我建议删除'ExecuteNonQuery'调用。 – Caramiriel

+0

这取决于你。你想如何展示它们?最直接的想法是使用数据网格(表格格式)。这里是你的链接:http://www.c-sharpcorner.com/uploadfile/anjudidi/example-of-datagrid-in-asp-net/ – Sparrow

+0

谢谢Caramiriel 我测试,因为我有一个错误,我可以不检索数据,但该部分已解决。我会纠正这一点。 谢谢Feryal, 但是这个信息来自其他页面gridview,它是每个记录的细节,因为以下内容将会修改记录 –

回答

0

感谢 我能得到列表值:

List<Cajas> cajadetalle = cajaUpd_BL.cajas_upd_cons_caja_detalle 
      (clienteCodigo, cajaCodigo, Convert.ToInt32(cajaNumero)); 

     txtUpdCajDet_CajCon.Text = cajadetalle[0].CajaContenido.ToString(); 
     txtUpdCajDet_CajEst.Text = cajadetalle[0].CajaEstado.ToString(); 
     txtUpdCajDet_CajFem.Text = cajadetalle[0].FecEmisionDoc.ToString(); 
     txtUpdCajDet_CajFca.Text = cajadetalle[0].FecCaducidDoc.ToString(); 
     txtUpdCajDet_CajFal.Text = cajadetalle[0].AltaFecha.ToString(); 
     txtUpdCajDet_CajFba.Text = cajadetalle[0].BajaFecha.ToString(); 
     txtUpdCajDet_CajUb1.Text = cajadetalle[0].CajaUbi1.ToString(); 
     ...... 
     ...... 

这样我就可以得到值文本框