Problema no DataGridView - Visual Basic.NET 2005
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
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
Curtidas 0
Respostas
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
{
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
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
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
23/01/2009
Conseguiu resolver?
Mais alguma dúvida?
GOSTEI 0
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
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
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....
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
23/01/2009
Resolveu? Mais alguma dúvida?
GOSTEI 0