Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

vb6

inserir registos

Recommended Posts

vb6


Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

        Try

            Dim ligacaobd As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\TMN\Desktop\clube_de_video\clube_de_video\bin\Debug\clube de video.mdb"

            Dim lm As String = "INSERT INTO Clientes (ID_Clientes,Nome_Clientes, Data_Nascimento, Bilhete_Identidade, Nº_Contribuinte, E-mail, Morada, Localidade, Código_Postal, Telefone, Utilizador, Password) VALUES ( @ID_Clientes, @Nome_Clientes, @Data_Nascimento, @Bilhete_Identidade, @Nº_Contribuinte, @E-mail, @Morada, @Localidade, @Código_Postal, @Telefone, @Utilizador, @Password)"

            ' Inicia uma ligação à bse de dados
            Using connection As New OleDbConnection(ligacaobd)

                ' Define o comando e os parâmetros
                Dim command As New OleDbCommand(lm, connection)


                command.Parameters.Add("ID_Cliente", OleDbType.VarChar).Value = ID_ClienteTextBox.Text
                command.Parameters.Add("Nome_Clientes", OleDbType.VarChar).Value = Nome_ClientesTextBox.Text
                command.Parameters.Add("Data_Nacimento", OleDbType.DBDate).Value = Data_NascimentoDateTimePicker.Text
                command.Parameters.Add("Bilhete_Identidade", OleDbType.Integer).Value = Bilhete_IdentidadeTextBox.Text
                command.Parameters.Add("Nº_Contribuinte", OleDbType.Integer).Value = Nº_ContribuinteTextBox.Text
                command.Parameters.Add("E-mail", OleDbType.VarChar).Value = E_mailTextBox.Text
                command.Parameters.Add("Morada", OleDbType.VarChar).Value = MoradaTextBox.Text
                command.Parameters.Add("Localidade", OleDbType.VarChar).Value = LocalidadeTextBox.Text
                command.Parameters.Add("Código_Postal", OleDbType.VarChar).Value = Código_PostalTextBox.Text
                command.Parameters.Add("Telefone", OleDbType.VarChar).Value = TelefoneTextBox.Text
                command.Parameters.Add("Utilizador", OleDbType.VarChar).Value = UtilizadorTextBox.Text
                command.Parameters.Add("Password", OleDbType.VarChar).Value = PasswordTextBox.Text


                ' Abre a ligação e insere o registo
                connection.Open()
                Dim x As Integer = command.ExecuteNonQuery()
                If x <> 1 Then
                    Throw New ArgumentException("Não foi possível inserir o registo na base de dados!")
                End If


            End Using

        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try





    End Sub









dá-me esse erro porque?: não é um caminho válido. Verifique se o caminho foi introduzido correctamente e se está ligado ao servidor onde reside o ficheiro

Share this post


Link to post
Share on other sites
Asgorath

Boas.

De certeza que nao mexeste a base de dados da sua localização?


"The Dark Side Clouds Everthing. Impossible To See The Future Is."My rig: Intel Core 2 Quad Q9450 | abit IP35P | 4G Kingston 800 Mhz | XFX GeForce 9800 GX2 1G ddr3 | 2X WD5000AAJS 500Gb Sata 2 | PSU 600W || Caixa El-Diablo | Creative XMod

Share this post


Link to post
Share on other sites
jpaulino

Dá-te erro onde ? Em connection.Open()

Além disso no Access não os parametros não são definidos dessa forma (embora funcione). Deves fazer "INSERT INTO tabela (a,b,c) VALUES (?,?,?)"

Depois tens de definir os parametros pela ordem correcta.

Share this post


Link to post
Share on other sites
vb6

 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

        Try

            Dim ligacaobd As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\TMN\Desktop\clube_de_video\clube_de_video\bin\Debug\clube de video.mdb"

            Dim db As String = "INSERT INTO Clientes (ID_Clientes,Nome_Clientes, Data_Nascimento, Bilhete_Identidade, Nº_Contribuinte, E-mail, Morada, Localidade, Código_Postal, Telefone, Utilizador, Password) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"

            ' Inicia uma ligação à bse de dados
            Using connection As New OleDbConnection(ligacaobd)

                ' Define o comando e os parâmetros
                Dim command As New OleDbCommand(db, connection)


                command.Parameters.Add("ID_Cliente", OleDbType.VarChar).Value = ID_ClienteTextBox.Text
                command.Parameters.Add("Nome_Clientes", OleDbType.VarChar).Value = Nome_ClientesTextBox.Text
                command.Parameters.Add("Data_Nacimento", OleDbType.DBDate).Value = Data_NascimentoDateTimePicker.Text
                command.Parameters.Add("Bilhete_Identidade", OleDbType.Integer).Value = Bilhete_IdentidadeTextBox.Text
                command.Parameters.Add("Nº_Contribuinte", OleDbType.Integer).Value = Nº_ContribuinteTextBox.Text
                command.Parameters.Add("E-mail", OleDbType.VarChar).Value = E_mailTextBox.Text
                command.Parameters.Add("Morada", OleDbType.VarChar).Value = MoradaTextBox.Text
                command.Parameters.Add("Localidade", OleDbType.VarChar).Value = LocalidadeTextBox.Text
                command.Parameters.Add("Código_Postal", OleDbType.VarChar).Value = Código_PostalTextBox.Text
                command.Parameters.Add("Telefone", OleDbType.VarChar).Value = TelefoneTextBox.Text
                command.Parameters.Add("Utilizador", OleDbType.VarChar).Value = UtilizadorTextBox.Text
                command.Parameters.Add("Password", OleDbType.VarChar).Value = PasswordTextBox.Text


                ' Abre a ligação e insere o registo
                connection.Open()
                Dim x As Integer = command.ExecuteNonQuery()
                If x <> 1 Then
                    Throw New ArgumentException("Não foi possível inserir o registo na base de dados!")
                End If


            End Using

        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try





    End Sub

ja mudei isso, mas continua a dar erro na conexao ha base de dados...mas esta bem feita.

Share this post


Link to post
Share on other sites
jpaulino

O caminho está correcto ? De certeza ?

Faz lá uma verificação:

If IO.File.Exists("C:\Users\TMN\Desktop\clube_de_video\clube_de_video\bin\Debug\clube de video.mdb") Then
   MessageBox.Show("Ficheiro encontrado!")
End If

Share this post


Link to post
Share on other sites
vasco16

eu tambem estou a fazer um projecto semelhante ao teu e liguei da seguinte maneira o programa á base de dados

' Define o tipo de base de dados

Dim dbConn As OleDb.OleDbConnection = New OleDb.OleDbConnection()

'Diz onde está a BD

dbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\bd1.mdb;"

Share this post


Link to post
Share on other sites
vb6

diz que o caminho não é válido. Verifique se o caminho foi introduzido correctamente e se está ligado ao servidor onde reside o ficheiro.

mas a ligação esta bem feita :S

Share this post


Link to post
Share on other sites
vasco16

diz que o caminho não é válido. Verifique se o caminho foi introduzido correctamente e se está ligado ao servidor onde reside o ficheiro.

mas a ligação esta bem feita :S

".. se está ligado ao servidor onde reside o ficheiro" .. deves estar com problemas no sql:S ou entao no wizard fizes-te mal a ligação ..

Share this post


Link to post
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

×

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.