none
Ajuda Urgente no OleDbCommand RRS feed

  • Pergunta

  •     Sub SalvaDados()

            Dim conn1 As New OleDbConnection()
            conn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\AJUSTES\medidas.mdb"
            conn1.Open()

            Dim cmd As OleDbCommand = New OleDbCommand("update inferiores set A01=@A01, A02=@A02, A03=@A03, A04=@A04, A05=@A05, A06=@A06, A07=@A07, A08=@A08, A09=@A09, A10=@A10, A11=@A11, A12=@A12, A13=@A13, A14=@A14, A15=@A15, A16=@A16, A17=@A17, A18=@A18, A19=@A19, A20=@A20, A21=@A21, A22=@A22, A23=@A=23, A24=@A24, A25=@A25, A26=@A26, A27=@A27, A28=@A28, A29=@A29, A30=@A30, A31=@A31, A32=@A32, A33=@A33, A34=@A34, A35=@A35, A36=@A36, A37=@A37, A38=@38, A39=@A39, A40=@A40", conn1)

            cmd.Parameters.AddWithValue("A01", TextBox1.Text)
            cmd.Parameters.AddWithValue("A02", TextBox2.Text)
            cmd.Parameters.AddWithValue("A03", TextBox3.Text)
            cmd.Parameters.AddWithValue("A04", TextBox4.Text)
            cmd.Parameters.AddWithValue("A05", TextBox5.Text)
            cmd.Parameters.AddWithValue("A06", TextBox6.Text)
            cmd.Parameters.AddWithValue("A07", TextBox7.Text)
            cmd.Parameters.AddWithValue("A08", TextBox8.Text)
            cmd.Parameters.AddWithValue("A09", TextBox9.Text)
            cmd.Parameters.AddWithValue("A10", TextBox10.Text)
            cmd.Parameters.AddWithValue("A11", TextBox23.Text)
            cmd.Parameters.AddWithValue("A12", TextBox22.Text)
            cmd.Parameters.AddWithValue("A13", TextBox18.Text)
            cmd.Parameters.AddWithValue("A14", TextBox19.Text)
            cmd.Parameters.AddWithValue("A15", TextBox20.Text)
            cmd.Parameters.AddWithValue("A16", TextBox21.Text)
            cmd.Parameters.AddWithValue("A17", TextBox15.Text)
            cmd.Parameters.AddWithValue("A18", TextBox16.Text)
            cmd.Parameters.AddWithValue("A19", TextBox17.Text)
            cmd.Parameters.AddWithValue("A20", TextBox11.Text)
            cmd.Parameters.AddWithValue("A21", TextBox12.Text)
            cmd.Parameters.AddWithValue("A22", TextBox13.Text)
            cmd.Parameters.AddWithValue("A23", TextBox14.Text)
            cmd.Parameters.AddWithValue("A24", TextBox24.Text)
            cmd.Parameters.AddWithValue("A25", TextBox84.Text)
            cmd.Parameters.AddWithValue("A26", TextBox86.Text)
            cmd.Parameters.AddWithValue("A27", TextBox90.Text)
            cmd.Parameters.AddWithValue("A28", TextBox85.Text)
            cmd.Parameters.AddWithValue("A29", TextBox27.Text)



            If RadioButton19.Checked = True Then
                cmd.Parameters.AddWithValue("A30", "0")

            Else
                cmd.Parameters.AddWithValue("A30", "1")

            End If


            If RadioButton23.Checked = True Then
                cmd.Parameters.AddWithValue("A31", "0")

            Else
                cmd.Parameters.AddWithValue("A31", "1")

            End If

            If RadioButton21.Checked = True Then
                cmd.Parameters.AddWithValue("A32", "0")

            Else
                cmd.Parameters.AddWithValue("A32", "1")

            End If


            cmd.ExecuteNonQuery()
            conn1.Close()



        End Sub


    quando executo esta função
    aparece um erro nesta linha

    cmd.ExecuteNonQuery()

    com a seguinte mensagem

    Nenhum valor foi fornecido para um ou mais parâmetros necessários.

    aonde estou errando ?

    sexta-feira, 9 de outubro de 2009 13:21

Respostas

  • Bruno você não está fornecendo os prâmetros do 33 pra frente por isso ocoree o erro
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 13:59
    • Não Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 14:32
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 13:37
  • Bruno qual o tipo do campo A35 no seu banco?
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 14:55
  • Bruno se eu fosse você mudaria pra usar dataset, datatable e adapter. Aqui é só um exemplo, declare o adapter e o dataset como membros da classe, e faça o código abaixo no form_load por exemplo.
    Na classe:

    Dim adapter as OleDbAdapter
    Dim ds as DataSet

    No Adapater faça assim:

    adapter as OleDbAdapter = new OleDbAdapter("select * from totais", conn)
    Dim builder as OleDbCommandBuilder = new OleDbCommandBuilder(adapter)
    adapter.InsertCommand = builder.SelectCommand
    adapter.UpdateCommand = builder.UpdateCommand
    adapter.DeleteCommand = builder.DeleteCommand

    ds as New DataSet
    adapter.Fill(ds, "Totais")

    Feito isso vincule os textboxes:

    this.textBox68.DataBindings("Text", ds.Tables("Totais"), "A01")

    Pronto feito isso ele ja está linkado, então quando a pessoa mudar no textbox muda também no datatable, para atualizar no banco é só fazer:

    adapter.Update(ds.Tables("Totais"))



    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 16:24
  • Isso mesmo
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 16:46
  • Bruno siga esse exemplo ai no seu CarTotais você faz o databind como expliquei acima

    Public Class Form1
    
        Dim conn As OleDbConnection
        Dim adapter As OleDbDataAdapter
        Dim ds As DataSet
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\AJUSTES\medidas.mdb")
            conn.Open()
    
            adapter = New OleDbDataAdapter(("select * from totais1", conn)
            ds = New DataSet()
    
            Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)
    
            adapter.Fill(ds, "Totais")
    
        End Sub
    End Class

    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 17:11
  • Cara desculpa o this eh pra c# pode tirar ele, e isso mesmo, porém para todos os textboxes neh, assim como você fazia antes mas para cada um com databindings e jogando o valor certo
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 17:25
  • Isso ai Bruno só o TextBox68.DataBindings("Text", ds.Tables("inferiores"), "A01") que é:

    TextBox68.DataBindings.Add("Text", ds.Tables("inferiores"), "A01")

    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 17:36
  • Bruno vamos ter um problema ai, seu campo terá que ser bit no banco, porque ele só irá aceitar boolean com o databindings do RadioButton, mas ficaria assim:

    RadioButton1.DataBindings.Add("Checked", dt, "A31")
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 17:59
  • Bruno só um minuto que vou ver o porque não está salvando. Quanto ao radio acho melhor porque não sei se terá jeito de fazer com databindings
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 19:26
  • Bruno resolvido vamos la:

    Depois do

    Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)
    

    Escreva:

    adapter.UpdateCommand = builder.GetUpdateCommand()
    No evento do seu botão:

    BindingContext(ds.Tables("inferiores")).EndCurrentEdit()
    adapter.Update(ds.Tables("inferiores"))
    • Sugerido como Resposta Murilo Amaru Gomes sexta-feira, 9 de outubro de 2009 19:50
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 19:37
  • Public Class Frm_Ajus
            Dim conn As OleDbConnection
            Dim adapter As OleDbDataAdapter
            Dim adapter1 As OleDbDataAdapter
            Dim ds As DataSet
    
            Private Sub Frm_Ajus_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                ajustes()
            End Sub
    
    
            Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
                BindingContext(ds.Tables("ajustes")).EndCurrentEdit()
                BindingContext(ds.Tables("ajustes1")).EndCurrentEdit()
                adapter.Update(ds.Tables("ajustes"))
                adapter1.Update(ds.Tables("ajustes1"))
                Close()
            End Sub
    
    
            Sub ajustes()
    
    
                conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\AJUSTES\medidas.mdb")
                conn.Open()
    
    
                adapter = New OleDbDataAdapter("select A01, A02, A03, ..., A10 from ajustes", conn)
                adapter1 = New OleDbDataAdapter("select A11, A12, A13, ..., A20 from ajustes", conn)
                ds = New DataSet()
    
                Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)
                adapter.UpdateCommand = builder.GetUpdateCommand()
    
                Dim builder1 As OleDbCommandBuilder = New OleDbCommandBuilder(adapter1)
                adapter1.UpdateCommand = builder1.GetUpdateCommand()
    
                adapter.Fill(ds, "ajustes")
                adapter1.Fill(ds, "ajustes1")
                TextBox1.DataBindings.Add("Text", ds.Tables("ajustes"), "A01")
                TextBox2.DataBindings.Add("Text", ds.Tables("ajustes"), "A02")
                TextBox3.DataBindings.Add("Text", ds.Tables("ajustes"), "A03")
                TextBox4.DataBindings.Add("Text", ds.Tables("ajustes"), "A03")
                TextBox5.DataBindings.Add("Text", ds.Tables("ajustes"), "A04")
                TextBox6.DataBindings.Add("Text", ds.Tables("ajustes"), "A05")
                TextBox7.DataBindings.Add("Text", ds.Tables("ajustes"), "A06")
                TextBox8.DataBindings.Add("Text", ds.Tables("ajustes"), "A07")
                TextBox9.DataBindings.Add("Text", ds.Tables("ajustes"), "A08")
                TextBox23.DataBindings.Add("Text", ds.Tables("ajustes"), "A09")
                TextBox22.DataBindings.Add("Text", ds.Tables("ajustes"), "A10")
    
    
    ...
    ...
    ...
    
                TextBox25.DataBindings.Add("Text", ds.Tables("ajustes1"), "A11")
                TextBox88.DataBindings.Add("Text", ds.Tables("ajustes1"), "A12")
    ...
                TextBox26.DataBindings.Add("Text", ds.Tables("ajustes1"), "A20")
    
    
    
    
            End Sub
    
    
        End Class
    Repare que metade no databindings usei o datatable ajustes e na outra ajustes1. Só tomar cuidado em qual você trouxe a coluna.
    Nunca fiz isso não sei se dará certo mas quem sabe né hahaha.
    Cliquei sem querer no propor como resposta, fui clicar em editar foi mal, hahaha
    • Marcado como Resposta Bruno Gaiola terça-feira, 13 de outubro de 2009 16:23
    terça-feira, 13 de outubro de 2009 15:20
  • mas uma coisa

    quando eu coloco

    Dim adapter As OleDbAdapter
    Dim ds As DataSet



    da erro no OleDbAdapter

    diz q ele nao esta definido


    e tambem 

    dapter("select * from totais", conn)

    aonde essa conn esta declarada ?
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 16:57
  • Ok

    entao no meu cartotais vai ficar só isso:


    this.textBox68.DataBindings("Text", ds.Tables("Totais"), "A01")


    ps. o "this" ta dando erro  "not declared"
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 17:24
  • Error 1 Property access must assign to the property or use its value. C:\AJUSTES\Biblioteca1\Biblioteca1\AjustedeMedidas.vb

    da esse erro quando coloco: textBox68.DataBindings("Text", ds.Tables("Totais"), "A01")



    entao

    no geral ta assim :




    Public Class Frm_Ajus
        Dim conn As OleDbConnection
        Dim adapter As OleDbDataAdapter
        Dim ds As DataSet

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

            conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\AJUSTES\medidas.mdb")
            conn.Open()

            adapter = New OleDbDataAdapter(("select * from inferiores"), conn)
            ds = New DataSet()

            Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)

            adapter.Fill(ds, "inferiores")

             
              Inferiores()

        End Sub



        Sub Inferiores()
            TextBox68.DataBindings("Text", ds.Tables("inferiores"), "A01")
        End Sub


    End class

    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 17:30
  • Cara, muito obrigado mesmo

    desculpa abusar
    so mais uma coisa

    como eu faço o radio button ?

    q antes era assim

            If reader("A31") = "0" Then

                RadioButton23.Checked = True
            ElseIf reader("A31") = "1" Then

                RadioButton25.Checked = True
            End If



    e tambem
    na hora de carregar da certo

    mas eu altero no programa
    mas nao salva

    e eu estou executando 

    adapter.Update(ds.Tables("inferiores"))

    no botão que salva


    mas nao altera
    continua com o mesmo valor

    ]muito obrigado
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 17:49
  • mas por exemplo

    tem casos que tenho 4 radiobuttons

    ai nao seria so 0 e 1

    seria 0 1 2 3 

    entendeu ?


    outra coisa


    nas textbox
    na hora de carregar da certo

    mas eu altero no programa
    mas nao salva

    e eu estou executando 

    adapter.Update(ds.Tables("inferiores"))

    no botão que salva


    mas nao altera
    continua com o mesmo valor
    faltou alguma coisa ?


    fiz exatamente o que coloquei  acima

    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 18:01
  • entao ainda nao resolvi o problema de salvar nao esta atualizando quando ao radiobutton com ele eu vou fazer da maneira q fazia antes ja que sao poucos campos
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 19:25
  • VOCE É O CARA!


    haha

    brigadão mesmo


    bom final de semana.
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 19:43
  • Murilo, se o banco é muito grande
    quando eu salvo
    da erro na linha update

    aparece isso

    "Expressão muito complexa"




    tem como resolver isso ?
    • Marcado como Resposta Bruno Gaiola terça-feira, 13 de outubro de 2009 15:00
    terça-feira, 13 de outubro de 2009 12:02
  • Bruno tente fazer em separados datatable.
    Por exemplo traga metade dos campos com um adapter e a outra com outro no comando select do mesmo, ai crie o builder para os dois pegando o update command, como você fez acima porém para cada um, e também criando dois datatables

    adapter1.Fill(ds.Tables("inferiores1"))
    adapter2.Fill(ds.Tables("inferiores2"))

    E na hora do update de update nos dois:

    BindingContext.(ds.Tables("inferiores1")).EndCurrentEdit()
    BindingContext.(ds.Tables("inferiores2")).EndCurrentEdit()
    adapter1.Update(ds.Tables("inferioes1"))
    adapter1.Update(ds.Tables("inferioes2"))

    Tente isso e me fale se deu certo, se não, realmente não vou saber, com quantas colunas você está trabalhando?
    • Marcado como Resposta Bruno Gaiola terça-feira, 13 de outubro de 2009 15:00
    terça-feira, 13 de outubro de 2009 14:10

Todas as Respostas

  • Bruno você não está fornecendo os prâmetros do 33 pra frente por isso ocoree o erro
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 13:59
    • Não Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 14:32
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 13:37
  • Perfeito Murilo
    obrigado.

    mas uma coisa

       Sub SalvaTota()
            Dim conn3 As New OleDbConnection()
            conn3.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\AJUSTES\medidas.mdb"
            conn3.Open()

            Dim cmd As OleDbCommand = New OleDbCommand("update totais set A01=@A01, A02=@A02, A03=@A03, A04=@A04, A05=@A05, A06=@A06, A07=@A07, A08=@A08, A09=@A09, A10=@A10, A11=@A11, A12=@A12, A13=@A13, A14=@A14, A15=@A15, A16=@A16, A17=@A17, A18=@A18, A19=@A19, A20=@A20, A21=@A21, A22=@A22, A23=@A=23, A24=@A24, A25=@A25, A26=@A26, A27=@A27, A28=@A28, A29=@A29, A30=@A30, A31=@A31, A32=@A32, A33=@A33, A34=@A34, A35=@A35", conn3)

            cmd.Parameters.AddWithValue("A01", TextBox68.Text)
            cmd.Parameters.AddWithValue("A02", TextBox67.Text)
            cmd.Parameters.AddWithValue("A03", TextBox65.Text)
            cmd.Parameters.AddWithValue("A04", TextBox64.Text)
            cmd.Parameters.AddWithValue("A05", TextBox63.Text)
            cmd.Parameters.AddWithValue("A06", TextBox61.Text)
            cmd.Parameters.AddWithValue("A07", TextBox70.Text)
            cmd.Parameters.AddWithValue("A08", TextBox66.Text)
            cmd.Parameters.AddWithValue("A09", TextBox62.Text)
            cmd.Parameters.AddWithValue("A10", TextBox41.Text)
            cmd.Parameters.AddWithValue("A11", TextBox76.Text)
            cmd.Parameters.AddWithValue("A12", TextBox25.Text)
            cmd.Parameters.AddWithValue("A13", TextBox69.Text)
            cmd.Parameters.AddWithValue("A14", TextBox72.Text)
            cmd.Parameters.AddWithValue("A15", TextBox71.Text)
            cmd.Parameters.AddWithValue("A16", TextBox76.Text)
            cmd.Parameters.AddWithValue("A17", TextBox25.Text)
            cmd.Parameters.AddWithValue("A18", TextBox69.Text)
            cmd.Parameters.AddWithValue("A19", TextBox72.Text)
            cmd.Parameters.AddWithValue("A20", TextBox71.Text)
            cmd.Parameters.AddWithValue("A21", TextBox75.Text)
            cmd.Parameters.AddWithValue("A22", TextBox74.Text)
            cmd.Parameters.AddWithValue("A23", TextBox73.Text)
            cmd.Parameters.AddWithValue("A24", TextBox89.Text)
            cmd.Parameters.AddWithValue("A25", TextBox84.Text)
            cmd.Parameters.AddWithValue("A26", TextBox83.Text)
            cmd.Parameters.AddWithValue("A27", TextBox82.Text)
            cmd.Parameters.AddWithValue("A28", TextBox78.Text)
            cmd.Parameters.AddWithValue("A29", TextBox77.Text)
            cmd.Parameters.AddWithValue("A30", TextBox88.Text)
            cmd.Parameters.AddWithValue("A31", TextBox26.Text)



            If RadioButton40.Checked = True Then
                cmd.Parameters.AddWithValue("A32", "0")

            Else
                cmd.Parameters.AddWithValue("A32", "1")

            End If

            If RadioButton48.Checked = True Then
                cmd.Parameters.AddWithValue("A33", "0")

            Else
                cmd.Parameters.AddWithValue("A33", "1")

            End If

            If RadioButton42.Checked = True Then
                cmd.Parameters.AddWithValue("A34", "0")

            Else
                cmd.Parameters.AddWithValue("A34", "1")

            End If


            If RadioButton46.Checked = True Then
                cmd.Parameters.AddWithValue("A35", "0")

            ElseIf RadioButton45.Checked = True Then
                cmd.Parameters.AddWithValue("A35", "1")

            ElseIf RadioButton44.Checked = True Then
                cmd.Parameters.AddWithValue("A35", "2")

            ElseIf RadioButton43.Checked = True Then
                cmd.Parameters.AddWithValue("A35", "3")


            End If

            cmd.ExecuteNonQuery()
            conn3.Close()

        End Sub


    Nesta tela da o erro na mesma linha, mas a mensagem é diferente


    Tipo de dados imcompatível na expressão de critério.
    sexta-feira, 9 de outubro de 2009 14:33
  • Até onde eu sei ao chamar o AddWithValue você tem que passar o nome completo do parâmetro inclusive a @:

     cmd.Parameters.AddWithValue("@A35", "3")


    Se o post foi útil marque como resposta. - Advanced Web Application - MCP
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    • Não Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 14:52
  • Bruno qual o tipo do campo A35 no seu banco?
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 14:55
  • Ja resolvi



    cara, preciso tirar uma duvida

    eu usando esse comando para salvar
    ele possui um limite entende ?
    ate uns 20 campos da tudo certo
    mas se eu uso mais de 20 campos de um banco de dados
    um ou outro aleatoriamente fica com problema

    nao grava as informações

    como eu posso resolver isso

    caso nao seja possivel

    existe outra forma de eu ler
    alterar e salvar o banco de dados ?




    a proposito
    estou lendo assim


    Sub CarTotais()
            Dim conn3 As New OleDbConnection()
            conn3.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\AJUSTES\medidas.mdb"
            conn3.Open()

            Dim cmd As OleDbCommand = New OleDbCommand("select * from totais1", conn3)
            Dim reader As OleDbDataReader = cmd.ExecuteReader()
            If reader.HasRows Then
                reader.Read()

                TextBox68.Text = reader("A01").ToString()
                TextBox67.Text = reader("A02").ToString()
                TextBox65.Text = reader("A03").ToString()
                TextBox64.Text = reader("A04").ToString()
                TextBox63.Text = reader("A05").ToString()
                TextBox61.Text = reader("A06").ToString()
                TextBox70.Text = reader("A07").ToString()
                TextBox66.Text = reader("A08").ToString()
                TextBox62.Text = reader("A09").ToString()
                TextBox41.Text = reader("A10").ToString()
                TextBox76.Text = reader("A11").ToString()
                TextBox25.Text = reader("A12").ToString()
                TextBox69.Text = reader("A13").ToString()
                TextBox72.Text = reader("A14").ToString()
                TextBox71.Text = reader("A15").ToString()
                TextBox75.Text = reader("A16").ToString()
                TextBox74.Text = reader("A17").ToString()
                TextBox73.Text = reader("A18").ToString()
                TextBox89.Text = reader("A19").ToString()
                TextBox84.Text = reader("A20").ToString()
                TextBox83.Text = reader("A21").ToString()
                TextBox82.Text = reader("A22").ToString()
                TextBox78.Text = reader("A23").ToString()
                TextBox77.Text = reader("A24").ToString()
                TextBox88.Text = reader("A25").ToString()
                TextBox26.Text = reader("A26").ToString()
                

                If reader("A27") = "0" Then

                    RadioButton40.Checked = True
                ElseIf reader("A27") = "1" Then

                    RadioButton39.Checked = True
                End If


                If reader("A28") = "0" Then

                    RadioButton48.Checked = True
                ElseIf reader("A28") = "1" Then

                    RadioButton47.Checked = True
                End If
     

                If reader("A29") = "0" Then

                    RadioButton42.Checked = True
                ElseIf reader("A29") = "1" Then

                    RadioButton41.Checked = True
                End If



                If reader("A30") = "0" Then

                    RadioButton46.Checked = True
                ElseIf reader("A30") = "1" Then

                    RadioButton45.Checked = True
                ElseIf reader("A30") = "2" Then

                    RadioButton44.Checked = True
                ElseIf reader("A30") = "3" Then

                    RadioButton43.Checked = True
                End If


                reader.Close()
            End If
            conn3.Close()

        End Sub
    sexta-feira, 9 de outubro de 2009 15:33
  • Bruno se eu fosse você mudaria pra usar dataset, datatable e adapter. Aqui é só um exemplo, declare o adapter e o dataset como membros da classe, e faça o código abaixo no form_load por exemplo.
    Na classe:

    Dim adapter as OleDbAdapter
    Dim ds as DataSet

    No Adapater faça assim:

    adapter as OleDbAdapter = new OleDbAdapter("select * from totais", conn)
    Dim builder as OleDbCommandBuilder = new OleDbCommandBuilder(adapter)
    adapter.InsertCommand = builder.SelectCommand
    adapter.UpdateCommand = builder.UpdateCommand
    adapter.DeleteCommand = builder.DeleteCommand

    ds as New DataSet
    adapter.Fill(ds, "Totais")

    Feito isso vincule os textboxes:

    this.textBox68.DataBindings("Text", ds.Tables("Totais"), "A01")

    Pronto feito isso ele ja está linkado, então quando a pessoa mudar no textbox muda também no datatable, para atualizar no banco é só fazer:

    adapter.Update(ds.Tables("Totais"))



    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 16:24
  • entendi cara, brigadao mesmo


    mas assim, aonde eu faço o update ?

    so isso nao ficou claro
    é so eu escrever essa linha aonde eu quero atualizar?

    por exemplo


    sub close_click

    adapter.Update(ds.Tables("Totais"))

    End sub


    mas uma coisa

    quando eu coloco

    Dim adapter As OleDbAdapter
    Dim ds As DataSet



    da erro no OleDbAdapter

    diz q ele nao esta definido


    • Editado Bruno Gaiola sexta-feira, 9 de outubro de 2009 16:48
    sexta-feira, 9 de outubro de 2009 16:43
  • Isso mesmo
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 16:46
  • mas uma coisa

    quando eu coloco

    Dim adapter As OleDbAdapter
    Dim ds As DataSet



    da erro no OleDbAdapter

    diz q ele nao esta definido


    e tambem 

    dapter("select * from totais", conn)

    aonde essa conn esta declarada ?
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 16:57
  • Bruno siga esse exemplo ai no seu CarTotais você faz o databind como expliquei acima

    Public Class Form1
    
        Dim conn As OleDbConnection
        Dim adapter As OleDbDataAdapter
        Dim ds As DataSet
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\AJUSTES\medidas.mdb")
            conn.Open()
    
            adapter = New OleDbDataAdapter(("select * from totais1", conn)
            ds = New DataSet()
    
            Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)
    
            adapter.Fill(ds, "Totais")
    
        End Sub
    End Class

    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 17:11
  • Ok

    entao no meu cartotais vai ficar só isso:


    this.textBox68.DataBindings("Text", ds.Tables("Totais"), "A01")


    ps. o "this" ta dando erro  "not declared"
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 17:24
  • Cara desculpa o this eh pra c# pode tirar ele, e isso mesmo, porém para todos os textboxes neh, assim como você fazia antes mas para cada um com databindings e jogando o valor certo
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:51
    sexta-feira, 9 de outubro de 2009 17:25
  • Error 1 Property access must assign to the property or use its value. C:\AJUSTES\Biblioteca1\Biblioteca1\AjustedeMedidas.vb

    da esse erro quando coloco: textBox68.DataBindings("Text", ds.Tables("Totais"), "A01")



    entao

    no geral ta assim :




    Public Class Frm_Ajus
        Dim conn As OleDbConnection
        Dim adapter As OleDbDataAdapter
        Dim ds As DataSet

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

            conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\AJUSTES\medidas.mdb")
            conn.Open()

            adapter = New OleDbDataAdapter(("select * from inferiores"), conn)
            ds = New DataSet()

            Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)

            adapter.Fill(ds, "inferiores")

             
              Inferiores()

        End Sub



        Sub Inferiores()
            TextBox68.DataBindings("Text", ds.Tables("inferiores"), "A01")
        End Sub


    End class

    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 17:30
  • Isso ai Bruno só o TextBox68.DataBindings("Text", ds.Tables("inferiores"), "A01") que é:

    TextBox68.DataBindings.Add("Text", ds.Tables("inferiores"), "A01")

    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 17:36
  • Cara, muito obrigado mesmo

    desculpa abusar
    so mais uma coisa

    como eu faço o radio button ?

    q antes era assim

            If reader("A31") = "0" Then

                RadioButton23.Checked = True
            ElseIf reader("A31") = "1" Then

                RadioButton25.Checked = True
            End If



    e tambem
    na hora de carregar da certo

    mas eu altero no programa
    mas nao salva

    e eu estou executando 

    adapter.Update(ds.Tables("inferiores"))

    no botão que salva


    mas nao altera
    continua com o mesmo valor

    ]muito obrigado
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 17:49
  • Bruno vamos ter um problema ai, seu campo terá que ser bit no banco, porque ele só irá aceitar boolean com o databindings do RadioButton, mas ficaria assim:

    RadioButton1.DataBindings.Add("Checked", dt, "A31")
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 17:59
  • mas por exemplo

    tem casos que tenho 4 radiobuttons

    ai nao seria so 0 e 1

    seria 0 1 2 3 

    entendeu ?


    outra coisa


    nas textbox
    na hora de carregar da certo

    mas eu altero no programa
    mas nao salva

    e eu estou executando 

    adapter.Update(ds.Tables("inferiores"))

    no botão que salva


    mas nao altera
    continua com o mesmo valor
    faltou alguma coisa ?


    fiz exatamente o que coloquei  acima

    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 18:01
  • entao ainda nao resolvi o problema de salvar nao esta atualizando quando ao radiobutton com ele eu vou fazer da maneira q fazia antes ja que sao poucos campos
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 19:25
  • Bruno só um minuto que vou ver o porque não está salvando. Quanto ao radio acho melhor porque não sei se terá jeito de fazer com databindings
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 19:26
  • Bruno resolvido vamos la:

    Depois do

    Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)
    

    Escreva:

    adapter.UpdateCommand = builder.GetUpdateCommand()
    No evento do seu botão:

    BindingContext(ds.Tables("inferiores")).EndCurrentEdit()
    adapter.Update(ds.Tables("inferiores"))
    • Sugerido como Resposta Murilo Amaru Gomes sexta-feira, 9 de outubro de 2009 19:50
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 19:37
  • VOCE É O CARA!


    haha

    brigadão mesmo


    bom final de semana.
    • Marcado como Resposta Bruno Gaiola sexta-feira, 9 de outubro de 2009 19:52
    sexta-feira, 9 de outubro de 2009 19:43
  • Murilo, se o banco é muito grande
    quando eu salvo
    da erro na linha update

    aparece isso

    "Expressão muito complexa"




    tem como resolver isso ?
    • Marcado como Resposta Bruno Gaiola terça-feira, 13 de outubro de 2009 15:00
    terça-feira, 13 de outubro de 2009 12:02
  • Bruno tente fazer em separados datatable.
    Por exemplo traga metade dos campos com um adapter e a outra com outro no comando select do mesmo, ai crie o builder para os dois pegando o update command, como você fez acima porém para cada um, e também criando dois datatables

    adapter1.Fill(ds.Tables("inferiores1"))
    adapter2.Fill(ds.Tables("inferiores2"))

    E na hora do update de update nos dois:

    BindingContext.(ds.Tables("inferiores1")).EndCurrentEdit()
    BindingContext.(ds.Tables("inferiores2")).EndCurrentEdit()
    adapter1.Update(ds.Tables("inferioes1"))
    adapter1.Update(ds.Tables("inferioes2"))

    Tente isso e me fale se deu certo, se não, realmente não vou saber, com quantas colunas você está trabalhando?
    • Marcado como Resposta Bruno Gaiola terça-feira, 13 de outubro de 2009 15:00
    terça-feira, 13 de outubro de 2009 14:10
  • desculpa murilo nao entendi perfeitamente

    mas por exemplo

    como ficaria esse codigo

    Public Class Frm_Ajus
        Dim conn As OleDbConnection
        Dim adapter As OleDbDataAdapter
        Dim ds As DataSet


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

            ajustes()



            
        End Sub

        Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
            BindingContext(ds.Tables("ajustes")).Position += 1
            adapter.Update(ds.Tables("ajustes"))

     
            Close()
    End sub

       Sub ajustes()

            conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\AJUSTES\medidas.mdb")
            conn.Open()

            adapter = New OleDbDataAdapter(("select * from ajustes"), conn)
            ds = New DataSet()

            Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)

            adapter.UpdateCommand = builder.GetUpdateCommand()


            adapter.Fill(ds, "ajustes")



            TextBox1.DataBindings.Add("Text", ds.Tables("ajustes"), "A01")
            TextBox2.DataBindings.Add("Text", ds.Tables("ajustes"), "A02")
            TextBox3.DataBindings.Add("Text", ds.Tables("ajustes"), "A03")
            TextBox4.DataBindings.Add("Text", ds.Tables("ajustes"), "A03")
            TextBox5.DataBindings.Add("Text", ds.Tables("ajustes"), "A04")
            TextBox6.DataBindings.Add("Text", ds.Tables("ajustes"), "A05")
            TextBox7.DataBindings.Add("Text", ds.Tables("ajustes"), "A06")
            TextBox8.DataBindings.Add("Text", ds.Tables("ajustes"), "A07")
            TextBox9.DataBindings.Add("Text", ds.Tables("ajustes"), "A08")
            TextBox23.DataBindings.Add("Text", ds.Tables("ajustes"), "A09")
            TextBox22.DataBindings.Add("Text", ds.Tables("ajustes"), "A10")

    ...
    ...
    ...

            TextBox88.DataBindings.Add("Text", ds.Tables("ajustes"), "A75")
            TextBox26.DataBindings.Add("Text", ds.Tables("ajustes"), "A76")


    End Sub

    End Class




    obrigado
    to trabalhando com 76 colulas
    terça-feira, 13 de outubro de 2009 14:35
  • Public Class Frm_Ajus
            Dim conn As OleDbConnection
            Dim adapter As OleDbDataAdapter
            Dim adapter1 As OleDbDataAdapter
            Dim ds As DataSet
    
            Private Sub Frm_Ajus_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                ajustes()
            End Sub
    
    
            Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
                BindingContext(ds.Tables("ajustes")).EndCurrentEdit()
                BindingContext(ds.Tables("ajustes1")).EndCurrentEdit()
                adapter.Update(ds.Tables("ajustes"))
                adapter1.Update(ds.Tables("ajustes1"))
                Close()
            End Sub
    
    
            Sub ajustes()
    
    
                conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "c:\AJUSTES\medidas.mdb")
                conn.Open()
    
    
                adapter = New OleDbDataAdapter("select A01, A02, A03, ..., A10 from ajustes", conn)
                adapter1 = New OleDbDataAdapter("select A11, A12, A13, ..., A20 from ajustes", conn)
                ds = New DataSet()
    
                Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(adapter)
                adapter.UpdateCommand = builder.GetUpdateCommand()
    
                Dim builder1 As OleDbCommandBuilder = New OleDbCommandBuilder(adapter1)
                adapter1.UpdateCommand = builder1.GetUpdateCommand()
    
                adapter.Fill(ds, "ajustes")
                adapter1.Fill(ds, "ajustes1")
                TextBox1.DataBindings.Add("Text", ds.Tables("ajustes"), "A01")
                TextBox2.DataBindings.Add("Text", ds.Tables("ajustes"), "A02")
                TextBox3.DataBindings.Add("Text", ds.Tables("ajustes"), "A03")
                TextBox4.DataBindings.Add("Text", ds.Tables("ajustes"), "A03")
                TextBox5.DataBindings.Add("Text", ds.Tables("ajustes"), "A04")
                TextBox6.DataBindings.Add("Text", ds.Tables("ajustes"), "A05")
                TextBox7.DataBindings.Add("Text", ds.Tables("ajustes"), "A06")
                TextBox8.DataBindings.Add("Text", ds.Tables("ajustes"), "A07")
                TextBox9.DataBindings.Add("Text", ds.Tables("ajustes"), "A08")
                TextBox23.DataBindings.Add("Text", ds.Tables("ajustes"), "A09")
                TextBox22.DataBindings.Add("Text", ds.Tables("ajustes"), "A10")
    
    
    ...
    ...
    ...
    
                TextBox25.DataBindings.Add("Text", ds.Tables("ajustes1"), "A11")
                TextBox88.DataBindings.Add("Text", ds.Tables("ajustes1"), "A12")
    ...
                TextBox26.DataBindings.Add("Text", ds.Tables("ajustes1"), "A20")
    
    
    
    
            End Sub
    
    
        End Class
    Repare que metade no databindings usei o datatable ajustes e na outra ajustes1. Só tomar cuidado em qual você trouxe a coluna.
    Nunca fiz isso não sei se dará certo mas quem sabe né hahaha.
    Cliquei sem querer no propor como resposta, fui clicar em editar foi mal, hahaha
    • Marcado como Resposta Bruno Gaiola terça-feira, 13 de outubro de 2009 16:23
    terça-feira, 13 de outubro de 2009 15:20
  • PERFEITO.
    terça-feira, 13 de outubro de 2009 16:23
  • Mas Bruno trate isso como uma solução temporária, de uma pesquisada se isso realmente acontece, e caso ache a solução poste ai pra gente, depois vou dar uma procurada também e também postarei se achar algo.
    Abraço.
    terça-feira, 13 de outubro de 2009 16:25