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

vb6

inserir registos

11 mensagens neste tópico


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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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;"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora