Usuário com melhor resposta
Erro ao retorna uma Lista retorno da pesquisa com Valores repetido

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;
} BLLpublic 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();
}
}
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.
- Sugerido como Resposta CarlosEduardo Ferreira terça-feira, 3 de maio de 2016 12:00
- Marcado como Resposta Robert Sancts terça-feira, 3 de maio de 2016 12:07
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?
-
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.
-
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.
- Sugerido como Resposta CarlosEduardo Ferreira terça-feira, 3 de maio de 2016 12:00
- Marcado como Resposta Robert Sancts terça-feira, 3 de maio de 2016 12:07
-
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();
}
}
-
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.
-