none
Erro ao retorna uma Lista retorno da pesquisa com Valores repetido RRS feed

  • Pergunta

  • Boa tarde estou quebrando a cabeça ja refiz este codigo mais de 10 vezes e não consigo ver o erro

    quanto retorna a pesquisa no grid ele retorna os valores repetido do ultimo registro


    EVENTO DO BOTÃO

                                                    

       private void Pesquisa_Click(object sender, EventArgs e)
            {




                    MAT.GRUPO = cb_Grupo.Text;
                    MAT.FAMILIA = cb_familia.Text;
                    MAT.SUBFAMILIA = cb_subfamilia.Text;
                    MAT.DESC_TIPO_PT = cb_des_tipo.Text;

                    IList<MaterialDGT> listA = new materialBLL().CargaPESQUISA(MAT);

                    dataGridView2.AutoGenerateColumns = false;
                    dataGridView2.DataSource = listA;
                    dataGridView3.AutoGenerateColumns = false;
                    dataGridView3.DataSource = listA;
                    dataGridView1.AutoGenerateColumns = false;
                    dataGridView1.DataSource = listA;



            }                                                                                                                                                                                        BLL

         public IList<MaterialDGT> CargaPESQUISA(MaterialDGT MAT)
            {
                try
                {
                    return new materialDAL().CargaPESQUISA(MAT);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

    DAL


            public IList<MaterialDGT> CargaPESQUISA(MaterialDGT MAT)
            {
                SqlConnection CON = new SqlConnection();


                try
                {

                    CON.ConnectionString = Properties.Settings.Default.connectioString;
                    SqlCommand CM = new SqlCommand();
                    CM.CommandType = System.Data.CommandType.StoredProcedure;
                    CM.CommandText = "USP_TESTE004";
                    CM.Connection = CON;

                    CM.Parameters.Add("@GRUPO", System.Data.SqlDbType.NVarChar).Value = MAT.GRUPO;
                    CM.Parameters.Add("@FAMILIA", System.Data.SqlDbType.NVarChar).Value = MAT.FAMILIA;
                    CM.Parameters.Add("@SUBFAMILIA", System.Data.SqlDbType.NVarChar).Value = MAT.SUBFAMILIA;
                    CM.Parameters.Add("@TIPO", System.Data.SqlDbType.NVarChar).Value = MAT.DESC_TIPO_PT;



                    SqlDataReader ER;
                    IList<MaterialDGT> listaMaterial = new List<MaterialDGT>();

                    CON.Open();

                    ER = CM.ExecuteReader();
                    if (ER.HasRows)
                    {
                        while (ER.Read())
                        {
                            MAT.id_dgt = Convert.ToInt32(ER["id_dgt"]);
                            MAT.DGT = Convert.ToString(ER["DGT"]);
                            MAT.des_curta_pt = Convert.ToString(ER["des_curta_pt"]);
                            MAT.des_curta_us = Convert.ToString(ER["des_curta_us"]);
                            MAT.des_curta_spn = Convert.ToString(ER["des_curta_spn"]);
                            MAT.YFP_YRES = Convert.ToString(ER["YFP_YRES"]);
                            MAT.YRAW = Convert.ToString(ER["YRAW"]);
                            MAT.norma = Convert.ToString(ER["norma"]);
                            MAT.dr_eng = Convert.ToString(ER["dr_eng"]);
                            MAT.marca = Convert.ToString(ER["marca"]);

                            MAT.LONGA = Convert.ToString(ER["LONGA"]);
                            MAT.LONG = Convert.ToString(ER["LONG"]);
                            MAT.DETALLADA = Convert.ToString(ER["DETALLADA"]);


                            //TBL_GRUPO
                            MAT.ID_GR = Convert.ToString(ER["ID_GR"]);
                            MAT.GRUPO = Convert.ToString(ER["GRUPO"]);

                            //TBL_FAMILIA
                            MAT.id_f = Convert.ToString(ER["ID_f"]);
                            MAT.FAMILIA = Convert.ToString(ER["FAMILIA"]);

                            MAT.ID_SF = Convert.ToString(ER["ID_SF"]);
                            MAT.SUBFAMILIA = Convert.ToString(ER["SUBFAMILIA"]);

                            //TBL_TIPO
                            MAT.ID_TP = Convert.ToString(ER["ID_TP"]);
                            MAT.DESC_TIPO_PT = Convert.ToString(ER["DESC_TIPO_PT"]);
                            MAT.DESC_TIPO_US = Convert.ToString(ER["DESC_TIPO_US"]);
                            MAT.DESC_TIPO_SPN = Convert.ToString(ER["DESC_TIPO_SPN"]);

                            //TBL_N_MATERIAL

                            MAT.ID_N_MAT = Convert.ToString(ER["ID_N_MAT"]);
                            MAT.DESC_N_MAT_PT = Convert.ToString(ER["DESC_N_MAT_PT"]);
                            MAT.DESC_N_MAT_US = Convert.ToString(ER["DESC_N_MAT_US"]);
                            MAT.DESC_N_MAT_SPN = Convert.ToString(ER["DESC_N_MAT_SPN"]);


                            //TBL_N_DIMENSIONAL
                            MAT.ID_N_DIMEN = Convert.ToString(ER["ID_N_DIMEN"]);
                            MAT.DESC_N_DIM_PT = Convert.ToString(ER["DESC_N_DIM_PT"]);
                            MAT.DESC_N_DIM_US = Convert.ToString(ER["DESC_N_DIM_US"]);
                            MAT.DESC_N_DIM_SPN = Convert.ToString(ER["DESC_N_DIM_SPN"]);


                            //TBL_DIMENSIONAL

                            MAT.ID_DIM = Convert.ToString(ER["ID_DIM"]);
                            MAT.DES_DIM_PT = Convert.ToString(ER["des_dim_pt"]);
                            MAT.DES_DIM_US = Convert.ToString(ER["des_dim_us"]);
                            MAT.DES_DIM_SPN = Convert.ToString(ER["des_dim_spn"]);


                            //TBL_SCH

                            MAT.ID_SC = Convert.ToString(ER["id_sc"]);
                            MAT.DES_SCH_PT = Convert.ToString(ER["des_sch_pt"]);
                            MAT.DES_SCH_US = Convert.ToString(ER["des_sch_us"]);
                            MAT.DES_SCH_SPN = Convert.ToString(ER["des_sch_spn"]);

                            //TBL_EXTREMIDADE

                            MAT.ID_EXT = Convert.ToString(ER["id_ext"]);
                            MAT.DES_EXT_PT = Convert.ToString(ER["des_ext_pt"]);
                            MAT.DES_EXT_US = Convert.ToString(ER["des_ext_us"]);
                            MAT.DES_EXT_SPN = Convert.ToString(ER["des_ext_spn"]);

                            //TBL_INSPENSOES

                            MAT.ID_INSP = Convert.ToString(ER["id_insp"]);
                            MAT.des_ins_pt = Convert.ToString(ER["des_ins_pt"]);
                            MAT.des_ins_us = Convert.ToString(ER["des_ins_us"]);
                            MAT.des_ins_spn = Convert.ToString(ER["des_ins_spn"]);




                            listaMaterial.Add(MAT);
                        }

                    }


                    return listaMaterial;

                }
                catch (SqlException ex)
                {
                    throw new Exception("Erro Servidor Sql:" + ex.Number);

                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);

                }
                finally
                {
                    CON.Close();
                }


            }

    segunda-feira, 2 de maio de 2016 19:59

Respostas

  • Bom dia,

    Segue o código com a correção:

    private void Pesquisa_Click(object sender, EventArgs e)
    {
    		MAT.GRUPO = cb_Grupo.Text;
    		MAT.FAMILIA = cb_familia.Text;
    		MAT.SUBFAMILIA = cb_subfamilia.Text;
    		MAT.DESC_TIPO_PT = cb_des_tipo.Text;
    
    		IList<MaterialDGT> listA = new materialBLL().CargaPESQUISA(MAT);
    
    		dataGridView2.AutoGenerateColumns = false;
    		dataGridView2.DataSource = listA;
    		dataGridView3.AutoGenerateColumns = false;
    		dataGridView3.DataSource = listA;
    		dataGridView1.AutoGenerateColumns = false;
    		dataGridView1.DataSource = listA;
    }                                                                                                                                                                                        BLL
    
    public IList<MaterialDGT> CargaPESQUISA(MaterialDGT MAT)
    {
    	try
    	{
    		return new materialDAL().CargaPESQUISA(MAT);
    	}
    	catch (Exception ex)
    	{
    		throw ex;
    	}
    }
    
    DAL
    
    
    public IList<MaterialDGT> CargaPESQUISA(MaterialDGT MAT)
    {
    	SqlConnection CON = new SqlConnection();
    
    	try
    	{
    
    		CON.ConnectionString = Properties.Settings.Default.connectioString;
    		SqlCommand CM = new SqlCommand();
    		CM.CommandType = System.Data.CommandType.StoredProcedure;
    		CM.CommandText = "USP_TESTE004";
    		CM.Connection = CON;
    
    		CM.Parameters.Add("@GRUPO", System.Data.SqlDbType.NVarChar).Value = material.GRUPO;
    		CM.Parameters.Add("@FAMILIA", System.Data.SqlDbType.NVarChar).Value = material.FAMILIA;
    		CM.Parameters.Add("@SUBFAMILIA", System.Data.SqlDbType.NVarChar).Value = material.SUBFAMILIA;
    		CM.Parameters.Add("@TIPO", System.Data.SqlDbType.NVarChar).Value = material.DESC_TIPO_PT;
    
    		SqlDataReader ER;
    		IList<MaterialDGT> listaMaterial = new List<MaterialDGT>();
    
    		CON.Open();
    
    		ER = CM.ExecuteReader();
    		if (ER.HasRows)
    		{
    			while (ER.Read())
    			{
    				MaterialDGT MAT = new MaterialDGT();
    			
    				MAT.id_dgt = Convert.ToInt32(ER["id_dgt"]);
    				MAT.DGT = Convert.ToString(ER["DGT"]);
    				MAT.des_curta_pt = Convert.ToString(ER["des_curta_pt"]);
    				MAT.des_curta_us = Convert.ToString(ER["des_curta_us"]);
    				MAT.des_curta_spn = Convert.ToString(ER["des_curta_spn"]);
    				MAT.YFP_YRES = Convert.ToString(ER["YFP_YRES"]);
    				MAT.YRAW = Convert.ToString(ER["YRAW"]);
    				MAT.norma = Convert.ToString(ER["norma"]);
    				MAT.dr_eng = Convert.ToString(ER["dr_eng"]);
    				MAT.marca = Convert.ToString(ER["marca"]);
    
    				MAT.LONGA = Convert.ToString(ER["LONGA"]);
    				MAT.LONG = Convert.ToString(ER["LONG"]);
    				MAT.DETALLADA = Convert.ToString(ER["DETALLADA"]);
    
    
    				//TBL_GRUPO
    				MAT.ID_GR = Convert.ToString(ER["ID_GR"]);
    				MAT.GRUPO = Convert.ToString(ER["GRUPO"]);
    
    				//TBL_FAMILIA
    				MAT.id_f = Convert.ToString(ER["ID_f"]);
    				MAT.FAMILIA = Convert.ToString(ER["FAMILIA"]);
    
    				MAT.ID_SF = Convert.ToString(ER["ID_SF"]);
    				MAT.SUBFAMILIA = Convert.ToString(ER["SUBFAMILIA"]);
    
    				//TBL_TIPO
    				MAT.ID_TP = Convert.ToString(ER["ID_TP"]);
    				MAT.DESC_TIPO_PT = Convert.ToString(ER["DESC_TIPO_PT"]);
    				MAT.DESC_TIPO_US = Convert.ToString(ER["DESC_TIPO_US"]);
    				MAT.DESC_TIPO_SPN = Convert.ToString(ER["DESC_TIPO_SPN"]);
    				
    				//TBL_N_MATERIAL
    
    				MAT.ID_N_MAT = Convert.ToString(ER["ID_N_MAT"]);
    				MAT.DESC_N_MAT_PT = Convert.ToString(ER["DESC_N_MAT_PT"]);
    				MAT.DESC_N_MAT_US = Convert.ToString(ER["DESC_N_MAT_US"]);
    				MAT.DESC_N_MAT_SPN = Convert.ToString(ER["DESC_N_MAT_SPN"]);
    
    				//TBL_N_DIMENSIONAL
    				MAT.ID_N_DIMEN = Convert.ToString(ER["ID_N_DIMEN"]);
    				MAT.DESC_N_DIM_PT = Convert.ToString(ER["DESC_N_DIM_PT"]);
    				MAT.DESC_N_DIM_US = Convert.ToString(ER["DESC_N_DIM_US"]);
    				MAT.DESC_N_DIM_SPN = Convert.ToString(ER["DESC_N_DIM_SPN"]);
    
    				//TBL_DIMENSIONAL
    
    				MAT.ID_DIM = Convert.ToString(ER["ID_DIM"]);
    				MAT.DES_DIM_PT = Convert.ToString(ER["des_dim_pt"]);
    				MAT.DES_DIM_US = Convert.ToString(ER["des_dim_us"]);
    				MAT.DES_DIM_SPN = Convert.ToString(ER["des_dim_spn"]);
    
    
    				//TBL_SCH
    
    				MAT.ID_SC = Convert.ToString(ER["id_sc"]);
    				MAT.DES_SCH_PT = Convert.ToString(ER["des_sch_pt"]);
    				MAT.DES_SCH_US = Convert.ToString(ER["des_sch_us"]);
    				MAT.DES_SCH_SPN = Convert.ToString(ER["des_sch_spn"]);
    
    				//TBL_EXTREMIDADE
    
    				MAT.ID_EXT = Convert.ToString(ER["id_ext"]);
    				MAT.DES_EXT_PT = Convert.ToString(ER["des_ext_pt"]);
    				MAT.DES_EXT_US = Convert.ToString(ER["des_ext_us"]);
    				MAT.DES_EXT_SPN = Convert.ToString(ER["des_ext_spn"]);
    				//TBL_INSPENSOES
    
    				MAT.ID_INSP = Convert.ToString(ER["id_insp"]);
    				MAT.des_ins_pt = Convert.ToString(ER["des_ins_pt"]);
    				MAT.des_ins_us = Convert.ToString(ER["des_ins_us"]);
    				MAT.des_ins_spn = Convert.ToString(ER["des_ins_spn"]);
    
    				listaMaterial.Add(MAT);
    			}
    		}
    		return listaMaterial;
    	}
    	catch (SqlException ex)
    	{
    		throw new Exception("Erro Servidor Sql:" + ex.Number);
    
    	}
    	catch (Exception ex)
    	{
    		throw new Exception(ex.Message);
    
    	}
    	finally
    	{
    		CON.Close();
    	}
    }
    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    terça-feira, 3 de maio de 2016 11:35

Todas as Respostas

  • 1 - Dentro do While você usa o objeto "MAT" que você passou por parametro, como você não cria um novo objeto ele sempre vai atualizar todos os objetos da lista por referência, se você tiver uma lista que adicionou 3 objetos na verdade os 3 são o mesmo na memória! Portanto, dentro do While var mat = new MaterialDGT();

    2 - Execute sua procedure com os mesmos parâmetros que foram passados via tempo de execução na sua base de dados, pode ser que sua procedure esteja retornando dados repetidos.

    3 - Seus 3 grids estão usando a mesma lista, portanto os 3 grids repetirão os dados, é isso mesmo?

     

    segunda-feira, 2 de maio de 2016 20:53
  • 1 - Dentro do While você usa o objeto "MAT" que você passou por parametro, como você não cria um novo objeto ele sempre vai atualizar todos os objetos da lista por referência, se você tiver uma lista que adicionou 3 objetos na verdade os 3 são o mesmo na memória! Portanto, dentro do While var mat = new MaterialDGT();

    2 - Execute sua procedure com os mesmos parâmetros que foram passados via tempo de execução na sua base de dados, pode ser que sua procedure esteja retornando dados repetidos.

    3 - Seus 3 grids estão usando a mesma lista, portanto os 3 grids repetirão os dados, é isso mesmo?

     

    Bom dia irei tentar deste jeito.

    sim, o 3 grids pega os  mesmos dados porem o que muda é as informações neles.

     
    terça-feira, 3 de maio de 2016 11:23
  • Bom dia,

    Segue o código com a correção:

    private void Pesquisa_Click(object sender, EventArgs e)
    {
    		MAT.GRUPO = cb_Grupo.Text;
    		MAT.FAMILIA = cb_familia.Text;
    		MAT.SUBFAMILIA = cb_subfamilia.Text;
    		MAT.DESC_TIPO_PT = cb_des_tipo.Text;
    
    		IList<MaterialDGT> listA = new materialBLL().CargaPESQUISA(MAT);
    
    		dataGridView2.AutoGenerateColumns = false;
    		dataGridView2.DataSource = listA;
    		dataGridView3.AutoGenerateColumns = false;
    		dataGridView3.DataSource = listA;
    		dataGridView1.AutoGenerateColumns = false;
    		dataGridView1.DataSource = listA;
    }                                                                                                                                                                                        BLL
    
    public IList<MaterialDGT> CargaPESQUISA(MaterialDGT MAT)
    {
    	try
    	{
    		return new materialDAL().CargaPESQUISA(MAT);
    	}
    	catch (Exception ex)
    	{
    		throw ex;
    	}
    }
    
    DAL
    
    
    public IList<MaterialDGT> CargaPESQUISA(MaterialDGT MAT)
    {
    	SqlConnection CON = new SqlConnection();
    
    	try
    	{
    
    		CON.ConnectionString = Properties.Settings.Default.connectioString;
    		SqlCommand CM = new SqlCommand();
    		CM.CommandType = System.Data.CommandType.StoredProcedure;
    		CM.CommandText = "USP_TESTE004";
    		CM.Connection = CON;
    
    		CM.Parameters.Add("@GRUPO", System.Data.SqlDbType.NVarChar).Value = material.GRUPO;
    		CM.Parameters.Add("@FAMILIA", System.Data.SqlDbType.NVarChar).Value = material.FAMILIA;
    		CM.Parameters.Add("@SUBFAMILIA", System.Data.SqlDbType.NVarChar).Value = material.SUBFAMILIA;
    		CM.Parameters.Add("@TIPO", System.Data.SqlDbType.NVarChar).Value = material.DESC_TIPO_PT;
    
    		SqlDataReader ER;
    		IList<MaterialDGT> listaMaterial = new List<MaterialDGT>();
    
    		CON.Open();
    
    		ER = CM.ExecuteReader();
    		if (ER.HasRows)
    		{
    			while (ER.Read())
    			{
    				MaterialDGT MAT = new MaterialDGT();
    			
    				MAT.id_dgt = Convert.ToInt32(ER["id_dgt"]);
    				MAT.DGT = Convert.ToString(ER["DGT"]);
    				MAT.des_curta_pt = Convert.ToString(ER["des_curta_pt"]);
    				MAT.des_curta_us = Convert.ToString(ER["des_curta_us"]);
    				MAT.des_curta_spn = Convert.ToString(ER["des_curta_spn"]);
    				MAT.YFP_YRES = Convert.ToString(ER["YFP_YRES"]);
    				MAT.YRAW = Convert.ToString(ER["YRAW"]);
    				MAT.norma = Convert.ToString(ER["norma"]);
    				MAT.dr_eng = Convert.ToString(ER["dr_eng"]);
    				MAT.marca = Convert.ToString(ER["marca"]);
    
    				MAT.LONGA = Convert.ToString(ER["LONGA"]);
    				MAT.LONG = Convert.ToString(ER["LONG"]);
    				MAT.DETALLADA = Convert.ToString(ER["DETALLADA"]);
    
    
    				//TBL_GRUPO
    				MAT.ID_GR = Convert.ToString(ER["ID_GR"]);
    				MAT.GRUPO = Convert.ToString(ER["GRUPO"]);
    
    				//TBL_FAMILIA
    				MAT.id_f = Convert.ToString(ER["ID_f"]);
    				MAT.FAMILIA = Convert.ToString(ER["FAMILIA"]);
    
    				MAT.ID_SF = Convert.ToString(ER["ID_SF"]);
    				MAT.SUBFAMILIA = Convert.ToString(ER["SUBFAMILIA"]);
    
    				//TBL_TIPO
    				MAT.ID_TP = Convert.ToString(ER["ID_TP"]);
    				MAT.DESC_TIPO_PT = Convert.ToString(ER["DESC_TIPO_PT"]);
    				MAT.DESC_TIPO_US = Convert.ToString(ER["DESC_TIPO_US"]);
    				MAT.DESC_TIPO_SPN = Convert.ToString(ER["DESC_TIPO_SPN"]);
    				
    				//TBL_N_MATERIAL
    
    				MAT.ID_N_MAT = Convert.ToString(ER["ID_N_MAT"]);
    				MAT.DESC_N_MAT_PT = Convert.ToString(ER["DESC_N_MAT_PT"]);
    				MAT.DESC_N_MAT_US = Convert.ToString(ER["DESC_N_MAT_US"]);
    				MAT.DESC_N_MAT_SPN = Convert.ToString(ER["DESC_N_MAT_SPN"]);
    
    				//TBL_N_DIMENSIONAL
    				MAT.ID_N_DIMEN = Convert.ToString(ER["ID_N_DIMEN"]);
    				MAT.DESC_N_DIM_PT = Convert.ToString(ER["DESC_N_DIM_PT"]);
    				MAT.DESC_N_DIM_US = Convert.ToString(ER["DESC_N_DIM_US"]);
    				MAT.DESC_N_DIM_SPN = Convert.ToString(ER["DESC_N_DIM_SPN"]);
    
    				//TBL_DIMENSIONAL
    
    				MAT.ID_DIM = Convert.ToString(ER["ID_DIM"]);
    				MAT.DES_DIM_PT = Convert.ToString(ER["des_dim_pt"]);
    				MAT.DES_DIM_US = Convert.ToString(ER["des_dim_us"]);
    				MAT.DES_DIM_SPN = Convert.ToString(ER["des_dim_spn"]);
    
    
    				//TBL_SCH
    
    				MAT.ID_SC = Convert.ToString(ER["id_sc"]);
    				MAT.DES_SCH_PT = Convert.ToString(ER["des_sch_pt"]);
    				MAT.DES_SCH_US = Convert.ToString(ER["des_sch_us"]);
    				MAT.DES_SCH_SPN = Convert.ToString(ER["des_sch_spn"]);
    
    				//TBL_EXTREMIDADE
    
    				MAT.ID_EXT = Convert.ToString(ER["id_ext"]);
    				MAT.DES_EXT_PT = Convert.ToString(ER["des_ext_pt"]);
    				MAT.DES_EXT_US = Convert.ToString(ER["des_ext_us"]);
    				MAT.DES_EXT_SPN = Convert.ToString(ER["des_ext_spn"]);
    				//TBL_INSPENSOES
    
    				MAT.ID_INSP = Convert.ToString(ER["id_insp"]);
    				MAT.des_ins_pt = Convert.ToString(ER["des_ins_pt"]);
    				MAT.des_ins_us = Convert.ToString(ER["des_ins_us"]);
    				MAT.des_ins_spn = Convert.ToString(ER["des_ins_spn"]);
    
    				listaMaterial.Add(MAT);
    			}
    		}
    		return listaMaterial;
    	}
    	catch (SqlException ex)
    	{
    		throw new Exception("Erro Servidor Sql:" + ex.Number);
    
    	}
    	catch (Exception ex)
    	{
    		throw new Exception(ex.Message);
    
    	}
    	finally
    	{
    		CON.Close();
    	}
    }
    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    terça-feira, 3 de maio de 2016 11:35
  • Bom dia,

    Segue o código com a correção:

    private void Pesquisa_Click(object sender, EventArgs e)
    {
    		MAT.GRUPO = cb_Grupo.Text;
    		MAT.FAMILIA = cb_familia.Text;
    		MAT.SUBFAMILIA = cb_subfamilia.Text;
    		MAT.DESC_TIPO_PT = cb_des_tipo.Text;
    
    		IList<MaterialDGT> listA = new materialBLL().CargaPESQUISA(MAT);
    
    		dataGridView2.AutoGenerateColumns = false;
    		dataGridView2.DataSource = listA;
    		dataGridView3.AutoGenerateColumns = false;
    		dataGridView3.DataSource = listA;
    		dataGridView1.AutoGenerateColumns = false;
    		dataGridView1.DataSource = listA;
    }                                                                                                                                                                                        BLL
    
    public IList<MaterialDGT> CargaPESQUISA(MaterialDGT MAT)
    {
    	try
    	{
    		return new materialDAL().CargaPESQUISA(MAT);
    	}
    	catch (Exception ex)
    	{
    		throw ex;
    	}
    }
    
    DAL
    
    
    public IList<MaterialDGT> CargaPESQUISA(MaterialDGT MAT)
    {
    	SqlConnection CON = new SqlConnection();
    
    	try
    	{
    
    		CON.ConnectionString = Properties.Settings.Default.connectioString;
    		SqlCommand CM = new SqlCommand();
    		CM.CommandType = System.Data.CommandType.StoredProcedure;
    		CM.CommandText = "USP_TESTE004";
    		CM.Connection = CON;
    
    		CM.Parameters.Add("@GRUPO", System.Data.SqlDbType.NVarChar).Value = material.GRUPO;
    		CM.Parameters.Add("@FAMILIA", System.Data.SqlDbType.NVarChar).Value = material.FAMILIA;
    		CM.Parameters.Add("@SUBFAMILIA", System.Data.SqlDbType.NVarChar).Value = material.SUBFAMILIA;
    		CM.Parameters.Add("@TIPO", System.Data.SqlDbType.NVarChar).Value = material.DESC_TIPO_PT;
    
    		SqlDataReader ER;
    		IList<MaterialDGT> listaMaterial = new List<MaterialDGT>();
    
    		CON.Open();
    
    		ER = CM.ExecuteReader();
    		if (ER.HasRows)
    		{
    			while (ER.Read())
    			{
    				MaterialDGT MAT = new MaterialDGT();
    			
    				MAT.id_dgt = Convert.ToInt32(ER["id_dgt"]);
    				MAT.DGT = Convert.ToString(ER["DGT"]);
    				MAT.des_curta_pt = Convert.ToString(ER["des_curta_pt"]);
    				MAT.des_curta_us = Convert.ToString(ER["des_curta_us"]);
    				MAT.des_curta_spn = Convert.ToString(ER["des_curta_spn"]);
    				MAT.YFP_YRES = Convert.ToString(ER["YFP_YRES"]);
    				MAT.YRAW = Convert.ToString(ER["YRAW"]);
    				MAT.norma = Convert.ToString(ER["norma"]);
    				MAT.dr_eng = Convert.ToString(ER["dr_eng"]);
    				MAT.marca = Convert.ToString(ER["marca"]);
    
    				MAT.LONGA = Convert.ToString(ER["LONGA"]);
    				MAT.LONG = Convert.ToString(ER["LONG"]);
    				MAT.DETALLADA = Convert.ToString(ER["DETALLADA"]);
    
    
    				//TBL_GRUPO
    				MAT.ID_GR = Convert.ToString(ER["ID_GR"]);
    				MAT.GRUPO = Convert.ToString(ER["GRUPO"]);
    
    				//TBL_FAMILIA
    				MAT.id_f = Convert.ToString(ER["ID_f"]);
    				MAT.FAMILIA = Convert.ToString(ER["FAMILIA"]);
    
    				MAT.ID_SF = Convert.ToString(ER["ID_SF"]);
    				MAT.SUBFAMILIA = Convert.ToString(ER["SUBFAMILIA"]);
    
    				//TBL_TIPO
    				MAT.ID_TP = Convert.ToString(ER["ID_TP"]);
    				MAT.DESC_TIPO_PT = Convert.ToString(ER["DESC_TIPO_PT"]);
    				MAT.DESC_TIPO_US = Convert.ToString(ER["DESC_TIPO_US"]);
    				MAT.DESC_TIPO_SPN = Convert.ToString(ER["DESC_TIPO_SPN"]);
    				
    				//TBL_N_MATERIAL
    
    				MAT.ID_N_MAT = Convert.ToString(ER["ID_N_MAT"]);
    				MAT.DESC_N_MAT_PT = Convert.ToString(ER["DESC_N_MAT_PT"]);
    				MAT.DESC_N_MAT_US = Convert.ToString(ER["DESC_N_MAT_US"]);
    				MAT.DESC_N_MAT_SPN = Convert.ToString(ER["DESC_N_MAT_SPN"]);
    
    				//TBL_N_DIMENSIONAL
    				MAT.ID_N_DIMEN = Convert.ToString(ER["ID_N_DIMEN"]);
    				MAT.DESC_N_DIM_PT = Convert.ToString(ER["DESC_N_DIM_PT"]);
    				MAT.DESC_N_DIM_US = Convert.ToString(ER["DESC_N_DIM_US"]);
    				MAT.DESC_N_DIM_SPN = Convert.ToString(ER["DESC_N_DIM_SPN"]);
    
    				//TBL_DIMENSIONAL
    
    				MAT.ID_DIM = Convert.ToString(ER["ID_DIM"]);
    				MAT.DES_DIM_PT = Convert.ToString(ER["des_dim_pt"]);
    				MAT.DES_DIM_US = Convert.ToString(ER["des_dim_us"]);
    				MAT.DES_DIM_SPN = Convert.ToString(ER["des_dim_spn"]);
    
    
    				//TBL_SCH
    
    				MAT.ID_SC = Convert.ToString(ER["id_sc"]);
    				MAT.DES_SCH_PT = Convert.ToString(ER["des_sch_pt"]);
    				MAT.DES_SCH_US = Convert.ToString(ER["des_sch_us"]);
    				MAT.DES_SCH_SPN = Convert.ToString(ER["des_sch_spn"]);
    
    				//TBL_EXTREMIDADE
    
    				MAT.ID_EXT = Convert.ToString(ER["id_ext"]);
    				MAT.DES_EXT_PT = Convert.ToString(ER["des_ext_pt"]);
    				MAT.DES_EXT_US = Convert.ToString(ER["des_ext_us"]);
    				MAT.DES_EXT_SPN = Convert.ToString(ER["des_ext_spn"]);
    				//TBL_INSPENSOES
    
    				MAT.ID_INSP = Convert.ToString(ER["id_insp"]);
    				MAT.des_ins_pt = Convert.ToString(ER["des_ins_pt"]);
    				MAT.des_ins_us = Convert.ToString(ER["des_ins_us"]);
    				MAT.des_ins_spn = Convert.ToString(ER["des_ins_spn"]);
    
    				listaMaterial.Add(MAT);
    			}
    		}
    		return listaMaterial;
    	}
    	catch (SqlException ex)
    	{
    		throw new Exception("Erro Servidor Sql:" + ex.Number);
    
    	}
    	catch (Exception ex)
    	{
    		throw new Exception(ex.Message);
    
    	}
    	finally
    	{
    		CON.Close();
    	}
    }
    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    Valeu Silvaney , só tive que fazer algumas alterações, na verdade só toquei o nome do objeto    MaterialDGT material = new MaterialDGT();

      public IList<MaterialDGT> CargaPESQUISA(MaterialDGT MAT)
            {
                SqlConnection CON = new SqlConnection();

                try
                {

                    CON.ConnectionString = Properties.Settings.Default.connectioString;
                    SqlCommand CM = new SqlCommand();
                    CM.CommandType = System.Data.CommandType.StoredProcedure;
                    CM.CommandText = "USP_TESTE004";
                    CM.Connection = CON;
                        Deixei a referencia MAT
                    CM.Parameters.Add("@GRUPO", System.Data.SqlDbType.NVarChar).Value = MAT.GRUPO;
                    CM.Parameters.Add("@FAMILIA", System.Data.SqlDbType.NVarChar).Value = MAT.FAMILIA;
                    CM.Parameters.Add("@SUBFAMILIA", System.Data.SqlDbType.NVarChar).Value = MAT.SUBFAMILIA;
                    CM.Parameters.Add("@TIPO", System.Data.SqlDbType.NVarChar).Value = MAT.DESC_TIPO_PT;

                    SqlDataReader ER;
                    IList<MaterialDGT> listaMaterial = new List<MaterialDGT>();

                    CON.Open();

                    ER = CM.ExecuteReader();
                    if (ER.HasRows)
                    {
                        while (ER.Read())
                        {

                            AQUI troquei o MAT que você sugeriu 

                            MaterialDGT material = new MaterialDGT();

                            material.id_dgt = Convert.ToInt32(ER["id_dgt"]);
                            material.DGT = Convert.ToString(ER["DGT"]);
                            material.des_curta_pt = Convert.ToString(ER["des_curta_pt"]);
                            material.des_curta_us = Convert.ToString(ER["des_curta_us"]);
                            material.des_curta_spn = Convert.ToString(ER["des_curta_spn"]);
                            material.YFP_YRES = Convert.ToString(ER["YFP_YRES"]);
                            material.YRAW = Convert.ToString(ER["YRAW"]);
                            material.norma = Convert.ToString(ER["norma"]);
                            material.dr_eng = Convert.ToString(ER["dr_eng"]);
                            material.marca = Convert.ToString(ER["marca"]);

                            material.LONGA = Convert.ToString(ER["LONGA"]);
                            material.LONG = Convert.ToString(ER["LONG"]);
                            material.DETALLADA = Convert.ToString(ER["DETALLADA"]);


                            //TBL_GRUPO
                            material.ID_GR = Convert.ToString(ER["ID_GR"]);
                            material.GRUPO = Convert.ToString(ER["GRUPO"]);

                            //TBL_FAMILIA
                            material.id_f = Convert.ToString(ER["ID_f"]);
                            material.FAMILIA = Convert.ToString(ER["FAMILIA"]);

                            material.ID_SF = Convert.ToString(ER["ID_SF"]);
                            material.SUBFAMILIA = Convert.ToString(ER["SUBFAMILIA"]);

                            //TBL_TIPO
                            material.ID_TP = Convert.ToString(ER["ID_TP"]);
                            material.DESC_TIPO_PT = Convert.ToString(ER["DESC_TIPO_PT"]);
                            material.DESC_TIPO_US = Convert.ToString(ER["DESC_TIPO_US"]);
                            material.DESC_TIPO_SPN = Convert.ToString(ER["DESC_TIPO_SPN"]);

                            //TBL_N_MATERIAL

                            material.ID_N_MAT = Convert.ToString(ER["ID_N_MAT"]);
                            material.DESC_N_MAT_PT = Convert.ToString(ER["DESC_N_MAT_PT"]);
                            material.DESC_N_MAT_US = Convert.ToString(ER["DESC_N_MAT_US"]);
                            material.DESC_N_MAT_SPN = Convert.ToString(ER["DESC_N_MAT_SPN"]);

                            //TBL_N_DIMENSIONAL
                            material.ID_N_DIMEN = Convert.ToString(ER["ID_N_DIMEN"]);
                            material.DESC_N_DIM_PT = Convert.ToString(ER["DESC_N_DIM_PT"]);
                            material.DESC_N_DIM_US = Convert.ToString(ER["DESC_N_DIM_US"]);
                            material.DESC_N_DIM_SPN = Convert.ToString(ER["DESC_N_DIM_SPN"]);

                            //TBL_DIMENSIONAL

                            material.ID_DIM = Convert.ToString(ER["ID_DIM"]);
                            material.DES_DIM_PT = Convert.ToString(ER["des_dim_pt"]);
                            material.DES_DIM_US = Convert.ToString(ER["des_dim_us"]);
                            material.DES_DIM_SPN = Convert.ToString(ER["des_dim_spn"]);


                            //TBL_SCH

                            material.ID_SC = Convert.ToString(ER["id_sc"]);
                            material.DES_SCH_PT = Convert.ToString(ER["des_sch_pt"]);
                            material.DES_SCH_US = Convert.ToString(ER["des_sch_us"]);
                            material.DES_SCH_SPN = Convert.ToString(ER["des_sch_spn"]);

                            //TBL_EXTREMIDADE

                            material.ID_EXT = Convert.ToString(ER["id_ext"]);
                            material.DES_EXT_PT = Convert.ToString(ER["des_ext_pt"]);
                            material.DES_EXT_US = Convert.ToString(ER["des_ext_us"]);
                            material.DES_EXT_SPN = Convert.ToString(ER["des_ext_spn"]);
                            //TBL_INSPENSOES

                            material.ID_INSP = Convert.ToString(ER["id_insp"]);
                            material.des_ins_pt = Convert.ToString(ER["des_ins_pt"]);
                            material.des_ins_us = Convert.ToString(ER["des_ins_us"]);
                            material.des_ins_spn = Convert.ToString(ER["des_ins_spn"]);

                            listaMaterial.Add(material);
                        }
                    }
                    return listaMaterial;
                }
                catch (SqlException ex)
                {
                    throw new Exception("Erro Servidor Sql:" + ex.Number);

                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);

                }
                finally
                {
                    CON.Close();
                }
            }

    terça-feira, 3 de maio de 2016 12:13
  • Bom dia

    O código que te mandei estava correto, esqueci de trocar o nome do objeto do método:

    public IList<MaterialDGT> CargaPESQUISA(MaterialDGT material)

    Estava guardando o ultimo porque você estava utilizando sempre o mesmo objeto. Da forma que mandei, a cada volta no laço (linha da grid) é criado um novo objeto.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    terça-feira, 3 de maio de 2016 12:20
  • Tenta simplificar o teu codigo:

    na tua lista faz assim:

    listaMateria.add(new MaterialDGT

    {

    id_dgt = .......... ,

    DGT = .........,

    });

    return listaMateria;


    A flower cannot blossom without sunshine, and man cannot live without love.

    terça-feira, 3 de maio de 2016 15:52
    Moderador