Jump to content

Erro ao faze Update da tabela


Seabra
 Share

Recommended Posts

Olá

Quando gravo a tabela dá o seguinte erro:

"Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information."

Tenho a chave primária definida em ID.

se eu alterar  a minha query para:

Dim SQL As String = "SELECT  ID, Var_ID, Var_Tag, Var_Nome, Var_Tipo, Var_Decimais, Var_Escala FROM Lista_Variaveis"

ou seja, incluir o campo com a chave primária já funciona, mas o que eu pretendo mesmo é não mostrar na minha Datagridview  a coluna ID.

O que é que eu poderei fazer para resolver isto?

Cumprimentos.

Public Class Form1

    ' Declaração de variáveis privadas 
    Private da As OleDb.OleDbDataAdapter
    Private ds As DataSet



    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load


        ' Texto de ligação à base de dados 
        Dim myConnectionString As String = ConStr

       
        ' Cria uma nova ligação à base de dados 
        Dim connection As New OleDb.OleDbConnection(ConStr)

        ' Cria um novo SqlDataAdapter que servirá para actualizar o DataSet 
        Dim SQL As String = "SELECT  Var_ID, Var_Tag, Var_Nome, Var_Tipo, Var_Decimais, Var_Escala FROM Lista_Variaveis"

        da = New OleDb.OleDbDataAdapter(SQL, connection)

        ' Cria um DataSet, ou seja, uma representação em memória da informação 
        ds = New DataSet

        ' Coloca a informação da tabela definida no DataSet 
        da.Fill(ds, "Lista_Variaveis")

        ' Define que a fonte de dados da DataGridView é a nossa DataSet 
        ' criando automáticamente as colunas e linhas de dados 
        Me.DataGridView1.DataSource = ds.Tables("Lista_Variaveis")

        ' Limpa a ligação à base de dados. Não é necessário fechar a ligação 
        ' porque esta não foi aberta através do comando .Open() 
        connection = Nothing



    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        ' Cria automaticamente o comando para permite actualizar a DataSet 
        Dim cb As New OleDb.OleDbCommandBuilder(da)

        ' Actualiza na DataSet, e por sua vez na tabela, as alterações efectuadas 
        da.Update(ds, "Lista_Variaveis")

    End Sub
End Class
Link to comment
Share on other sites

Como é que consegues fazer um update a um único registo no meio dos outros sem saberes o que é que o identifica?

Acho que tens razão.

Há alguma forma de esconder a coluna não na Datagridview mas sim na query?

Cumprimentos

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.