asp.net 0 Denunciar post Postado Maio 12, 2005 Tenho o código abaixo para inserir dados num banco Access vindo de um form.Sub inserir(Obj as Object, e as EventArgs) Dim str_conexao as New OledbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Sistemas\Toyota\basetoyotapb.mdb") Dim str_inserte as string="insert into cliente(1) values(@nome@)" Dim comando as New OledbCommand(str_inserte, str_conexao) with comando.Parameters .Add(New OledbParameter("@nome", tb_nome.text)) end with str_conexao.open() comando.ExecuteNonQuery() str_conexao.close()end subporém todas as vezes que tento rodar o código dá erro, o que pode ser?ERRO::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::A operação deve usar uma consulta atualizável.Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.Exception Details: System.Data.OleDb.OleDbException: A operação deve usar uma consulta atualizável.Source Error:Line 17: end withLine 18: str_conexao.open()Line 19: comando.ExecuteNonQuery()Line 20: str_conexao.close()Line 21: end subSource File: E:\Sistemas\toyota\cadastro.aspx Line: 19 Compartilhar este post Link para o post Compartilhar em outros sites
rOcKLoCo 0 Denunciar post Postado Maio 12, 2005 esse erro ocorre pq você precisa dar permissão de escrita na pasta onde se encontra o banco de dados.. e segundo, no VALUES não seria somente @nome ao inves de @nome@?falows Compartilhar este post Link para o post Compartilhar em outros sites
asp.net 0 Denunciar post Postado Maio 12, 2005 Realmente era este problema que resolvi com a sua dica, mas estou com outra bronca aqui que na linha abaixo estou utilizando indice para adicionar valor no banco porque sei que é mais rápido quando usamos indice ao inves de nome de coluna, pois bem a linha é a seguinte Dim str_inserte as string="insert into cliente(1) values(@nome)" Veja que uso o indice 1 para referenciar a coluna da tabela, porem quando tento compilar desta maneira ele me gera o erro abaixo: A instrução INSERT INTO contém o seguinte nome de campo desconhecido: '1' Certifique-se de que você digitou o nome corretamente e tente a operação novamente. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.OleDb.OleDbException: A instrução INSERT INTO contém o seguinte nome de campo desconhecido: '1' Certifique-se de que você digitou o nome corretamente e tente a operação novamente. Source Error: Line 18: end with Line 19: str_conexao.open() Line 20: comando.ExecuteNonQuery() Line 21: str_conexao.close() Line 22: call envia_mensagem() Source File: E:\Sistemas\toyota\cadastro.aspx Line: 20 Compartilhar este post Link para o post Compartilhar em outros sites
rOcKLoCo 0 Denunciar post Postado Maio 12, 2005 o indice serve para qdo necessitamos pegar o valor do campo retornado por exemplo do DataReader... qdo você tenta inserir o indice no INSERT não tem como, pois ele ira entender q o nome do campo é 1.. e ele não existe...no exemplo do datareader poderia ser assim:...SELECT Noticia FROM Noticias...string texto = drNoticia["Noticia"].ToString();mas para ficar mais rapido o acesso, ficaria melhor assim:string texto = drNoticia[0].ToString();entendeu?falows Compartilhar este post Link para o post Compartilhar em outros sites