2015-09-06 48 views
0

我需要获取参数param_IDFICHA的所有值(如果它存在并使用各自的值填充所有参数列表)。更多的是跳第一个ID和第二个ID开始。参数列表跳过SQL上表的第一个ID

例:

如果我有数据SQL

Jhon 3 2 

Crazy 1 2 

Egg 4 1 

列表参数其上市仅

Crazy 1 2 

Egg 4 1 

代码

public void Search_IDFicha(int param_IDFICHA, List<string> list_peixe, List<string> list_quant, List<string> list_peso) 
    { 
     SqlDataReader objReader; 
     SqlCommand objcmd = null; 

     vsql = "SELECT [ID_FICHA], [RGP], [PEIXE], [PESO], [QUANTIDADE], [DATA_REGISTRO] FROM cadastro WHERE ID_FICHA = @ID_FICHA"; 
     if (this.Conectar()) 
     { 
      try 
      { 
       objcmd = new SqlCommand(vsql, objCon); 

       objcmd.Parameters.Add(new SqlParameter("@ID_FICHA", param_IDFICHA)); 

       objReader = objcmd.ExecuteReader(); 

       if (objReader.Read()) 
       { 
        valor.retorna_IdFIcha = objReader.GetInt32(0); 

        while (objReader.Read()) 
        { 
         list_peixe.Add(objReader.GetString(2)); 
         list_peso.Add(objReader.GetDouble(3).ToString()); 
         list_quant.Add(objReader.GetInt32(4).ToString()); 
        } 

       } 

      } 
      catch 
      { 

      } 
      finally 
      { 
       this.Desconectar(); 
      } 
     } 

    } 

    private void btn_Buscar_Click(object sender, EventArgs e) 
    { 
     int param_idficha = Convert.ToInt32(txtb_idFicha.Text); 

     _peixe_list.Clear(); 
     _quant_list.Clear(); 
     _peso_list.Clear(); 

     objSQL.Search_IDFicha(param_idficha,_peixe_list,_quant_list,_peso_list); 

     int i = String.Compare(Convert.ToString(valor.retorna_IdFIcha), Convert.ToString(param_idficha)); 

     listBox1.DataSource = _peixe_list; 

    } 

回答

0

你正在做的read()两次。它只能在循环中调用。 每次调用Read()方法时,它都前进到下一条记录,这就是为什么您要跳过第一条记录。

public void Search_IDFicha(int param_IDFICHA, List<string> list_peixe, List<string> list_quant, List<string> list_peso) 
    { 
     SqlDataReader objReader; 
     SqlCommand objcmd = null; 

     vsql = "SELECT [ID_FICHA], [RGP], [PEIXE], [PESO], [QUANTIDADE], [DATA_REGISTRO] FROM cadastro WHERE ID_FICHA = @ID_FICHA"; 
     if (this.Conectar()) 
     { 
      try 
      { 
       objcmd = new SqlCommand(vsql, objCon); 

       objcmd.Parameters.Add(new SqlParameter("@ID_FICHA", param_IDFICHA)); 

       objReader = objcmd.ExecuteReader(); 

       while (objReader.Read()) 
       { 
        valor.retorna_IdFIcha = objReader.GetInt32(0); 
        list_peixe.Add(objReader.GetString(2)); 
        list_peso.Add(objReader.GetDouble(3).ToString()); 
        list_quant.Add(objReader.GetInt32(4).ToString()); 
       } 
      } 
      catch 
      { 

      } 
      finally 
      { 
       this.Desconectar(); 
      } 
     } 

    } 
+0

感谢您的帮助,解决了这个问题。 –

相关问题