Problema no DataGridView - Visual Basic.NET 2005

23/01/2009

Bom dia ... Este grid faz parte de um programa maior que estou desenvolvendo.... estarei enviando
depois em outras duvidas ...

Problemas:

1- Quando eu chamo a tabela "JAZIDA" e altero algum valor e depois salvo ocorre esse erro:

  Update requires a valid UpdateCommand when passed DataRow collection with modified rows.

2- A tabela "JAZ_OBRA", no programa está

"JAZIDA/OBRA', os campos "COD_OBRA" e "NOME_JAZ"   são chave primária. Qdo eu duplico aparece um

"ERRO de Duplicação", gostaria de colocar    uma mensagem mais amigável.

3- Depois que apareceu o ERRO, eu mandei visualizar

os dados, clicando no botão "BUSCA",    verifiquei que mudou a posição no GRID dos

campos. Isso não dá problema qdo eu uso no código:

  
DataGridViewTest.CurrentRow.Cells(1).Value.ToString.Trim

   Exemplo: antes estava a sequinte sequencia

       COD_OBRA NOME_JAZ  DM  EST_REF   SEMCARGA

   depois ficou;

       NOME_JAZ  COD_OBRA  DM  EST_REF   SEMCARGA


4- Eu coloquei esse texto em Forms1
'**************************************************
Imports System.Data
Imports System.Data.OleDb

Public Class Form1
    Dim dataAdapterProducts As New OleDbDataAdapter
    Dim dataSetProducts As New DataSet             

     ' está certo???
'**************************************************

e o "CargaDescdataSet" onde eu uso???

acho que tem coisa errada aqui....



5- Quando eu chamo as tabelas, clicando em "BUSCA", eu gostaria de mudar o nome
   de cada campo que aparece no gride, como faço??

   Ex: COD_OBRA NOME_JAZ  DM  EST_REF   SEMCARGA
     
passar para:

       Código da Obra   Nome da Jazida  Dist. M 

Estaca REF  Sem Carga

Obs: Estou mandando o link o programa Fonte...

http://www.geocities.com/ernanypbr/Novapasta.zip
Ernany

Ernany

Curtidas 0

Respostas

Fabio Mans

Fabio Mans

23/01/2009

Olá Ernany, sobre sua dúvida eu vou comentar abaixo.     1 - Update requires a valid UpdateCommand when passed DataRow collection with modified rows.   Você já a testou utilizando uma query direto no banco para ver se está tudo OK? Ocorre erro?     2 - Existe uma forma de você utilizar uma mensagem mais amigável, veja abaixo.   Ocorro um erro e mensagem apresentada contém o text IX_Username, eu capturo este valor e apresento uma mensagem, tente adaptar no seu código.    try
            {
                string name = txtName.Text;
                string password = txtPassword.Text;
                string email = txtEmail.Text;                 UsersBriefCase.Create(name, password, email);
                authenticate(name, email, password);
            }
            catch (SqlException ex)
            {
                if (ex.Message.Contains("IX_UserName"))
                    lblMsg.Text = "The name you supplied has already been registered. Please choose another.";
                else if (ex.Message.Contains("IX_Email"))
                    lblMsg.Text = "The e-mail you supplied has already been registered. Please choose another.";
                else
                    lblMsg.Text = ex.Message;
            }
        }     3 - Eu não entendi a dúvida nr. 3   4 - Onde você criou o CargaDescdataSet? Não encontrei no seu código   5 - Para alterar o nome basta você modificar o HeaderText, veja um exemplo.   <asp:BoundField DataField="COD_OBRA" HeaderText="Código da Obra"  />     Não consegui baixar o arquivo que você mandou o link.   Espero ter ajudado.     Fabio
GOSTEI 0
Ernany

Ernany

23/01/2009

Boa tarde, Aprendi a colocar no disco virtual o programa.   Agora fica mais fácil de entender as minhas perguntas.   https://www.devmedia.com.br/imagens/discovirtual/185374/Novapasta.zip       1 - Update requires a valid UpdateCommand when passed DataRow collection with modified rows.   Você já a testou utilizando uma query direto no banco para ver se está tudo OK? Ocorre erro? Resp:   São várias tabelas que mostro no GRID. A visualização da tabela é feita por uma seleção de um combobox.  A tabela que ocorre problema, se altero, é  a tabela "JAZIDA" .   3 - Eu não entendi a dúvida nr. 3   Resp: COD_OBRA NOME_JAZ  DM  SEMCARGA EST_REF                             NOME_JAZ  COD_OBRA DM  SEMCARGA EST_REF                         A posição dos campos no GRID está alterando. Isto pode ocorrer algum problema qdo eu uso o seguinte código????    DataGridViewTest.CurrentRow.Cells(1).Value.ToString.Trim   ??????      4 - Onde você criou o CargaDescdataSet? Não encontrei no seu código   https://www.devmedia.com.br/imagens/discovirtual/185374/CargaDescDataSetImagem.zip   Esta imagem explica melhor.   5 - Para alterar o nome basta você modificar o HeaderText, veja um exemplo.     Resp:   A questão de Modificar o "HeaderText" é que são várias tabelas no mesmo GRID....   Obrigado pela atenção...   Ernany
GOSTEI 0
Fabio Mans

Fabio Mans

23/01/2009

Provavelmente você está fazendo um INNER JOIN das sua tabelas, e assim está querendo atualizar os dados pelo Grid, assim fica complicado, editar um Grid é útil quando você trabalha com somente uma tabela. Você pode postar suas Querys, a de Select e Update?     Sobre mudar o Header não importa ser várias tabelas.   Acho melhor irmos resolvendo dúvida por dúvida.   Espero ter ajudado.               1 - Update requires a valid UpdateCommand when passed DataRow collection with modified rows.   Você já a testou utilizando uma query direto no banco para ver se está tudo OK? Ocorre erro? Resp:   São várias tabelas que mostro no GRID. A visualização da tabela é feita por uma seleção de um combobox.  A tabela que ocorre problema, se altero, é  a tabela "JAZIDA" .   3 - Eu não entendi a dúvida nr. 3   Resp: COD_OBRA NOME_JAZ  DM  SEMCARGA EST_REF                             NOME_JAZ  COD_OBRA DM  SEMCARGA EST_REF                         A posição dos campos no GRID está alterando. Isto pode ocorrer algum problema qdo eu uso o seguinte código????    DataGridViewTest.CurrentRow.Cells(1).Value.ToString.Trim   ??????      4 - Onde você criou o CargaDescdataSet? Não encontrei no seu código   https://www.devmedia.com.br/imagens/discovirtual/185374/CargaDescDataSetImagem.zip   Esta imagem explica melhor.   5 - Para alterar o nome basta você modificar o HeaderText, veja um exemplo.     Resp:   A questão de Modificar o "HeaderText" é que são várias tabelas no mesmo GRID....   Obrigado pela atenção...   Ernany
GOSTEI 0
Fabio Mans

Fabio Mans

23/01/2009

Conseguiu resolver?   Mais alguma dúvida?
GOSTEI 0
Ernany

Ernany

23/01/2009

  1 - Update requires a valid UpdateCommand when passed DataRow collection with modified rows.   Você já a testou utilizando uma query direto no banco para ver se está tudo OK? Ocorre erro? Resp:   São várias tabelas que mostro no GRID. A visualização da tabela é feita por uma seleção de um combobox.  A tabela que ocorre problema, se altero, é  a tabela "JAZIDA" .   ACHO QUE VC NÃO VIU O MEU CÓDIGO.   https://www.devmedia.com.br/imagens/discovirtual/185374/Novapasta.zip   Provavelmente você está fazendo um INNER JOIN das sua tabelas, e assim está querendo atualizar os dados pelo Grid, assim fica complicado, editar um Grid é útil quando você trabalha com somente uma tabela. Você pode postar suas Querys, a de Select e Update?   Estou utilizando o GRID para entrar com dados na tabela, depois vou gerar ARQUIVO TEXTO de cada tabela.   A Tabela "JAZIDA" não possui chave primária. Eu estava olhando nas Propriedades dos TableAdapter das outras tabelas todas tem no "UPDATECOMMAND" e todas tem alguma chave primária.  Na propriedade da Tabela "JAZIDA" não tem. Coloquei o seguinte comando :
update Jazida set Nome_Jaz = ?, Cod_Forn = ? where Nome_jaz = ? and Cod_Forn = ? Mas acontece..... se altero um campo de um registro, o resultado é gravado em todos os registros. Como resolvo esse "UPDATE"   ???? Acho que isso deve resolver....       3 - Eu não entendi a dúvida nr. 3   Resp: COD_OBRA NOME_JAZ  DM  SEMCARGA EST_REF                             NOME_JAZ  COD_OBRA DM  SEMCARGA EST_REF                         A posição dos campos no GRID está alterando. Isto pode ocorrer algum problema qdo eu uso o seguinte código????    DataGridViewTest.CurrentRow.Cells(1).Value.ToString.Trim   ??????      4 - Onde você criou o CargaDescdataSet? Não encontrei no seu código   https://www.devmedia.com.br/imagens/discovirtual/185374/CargaDescDataSetImagem.zip   Esta imagem explica melhor.     Obrigado pela atenção...   Ernany
 
GOSTEI 0
Fabio Mans

Fabio Mans

23/01/2009

E se você colocar chave primária na tabela JAZIDA  o seu UPDATE ficara com um Where como no exemplo abaixo.   update Jazida set Nome_Jaz = ?, Cod_Forn = ? where Cod_jaz = ?   Com isso você garente que está atualizando o registro correto.   Espero ter ajudado.       ============================================== 1 - Update requires a valid UpdateCommand when passed DataRow collection with modified rows.   Você já a testou utilizando uma query direto no banco para ver se está tudo OK? Ocorre erro? Resp:   São várias tabelas que mostro no GRID. A visualização da tabela é feita por uma seleção de um combobox.  A tabela que ocorre problema, se altero, é  a tabela "JAZIDA" .   ACHO QUE VC NÃO VIU O MEU CÓDIGO.   https://www.devmedia.com.br/imagens/discovirtual/185374/Novapasta.zip   Provavelmente você está fazendo um INNER JOIN das sua tabelas, e assim está querendo atualizar os dados pelo Grid, assim fica complicado, editar um Grid é útil quando você trabalha com somente uma tabela. Você pode postar suas Querys, a de Select e Update?   Estou utilizando o GRID para entrar com dados na tabela, depois vou gerar ARQUIVO TEXTO de cada tabela.   A Tabela "JAZIDA" não possui chave primária. Eu estava olhando nas Propriedades dos TableAdapter das outras tabelas todas tem no "UPDATECOMMAND" e todas tem alguma chave primária.  Na propriedade da Tabela "JAZIDA" não tem. Coloquei o seguinte comando :
update Jazida set Nome_Jaz = ?, Cod_Forn = ? where Nome_jaz = ? and Cod_Forn = ? Mas acontece..... se altero um campo de um registro, o resultado é gravado em todos os registros. Como resolvo esse "UPDATE"   ???? Acho que isso deve resolver....      
GOSTEI 0
Fabio Mans

Fabio Mans

23/01/2009

Resolveu? Mais alguma dúvida?
GOSTEI 0
POSTAR