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

Pt Freelancer

SQL Visual Basic Adicionar dados

14 mensagens neste tópico

Gostava de saber como adicionar dados a uma base de dados SQL. O programa tem umas texboxea, o utilizador escreve nessas textboxes, carrega no botão de comando e adiciona.

Sei fazera ligação, a unica coisa q não sei fazer e como adicionar a informação que o utilizador pos nas textboxes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hmmm... eu uso MySQL e para inserir os dados uso este sistema (nao sei s varia muito ou pouco do SQL express):

Imports MySql.Data.MySqlClient

'Declarar variaveis para a ligação

Dim conn As New MySqlConnection
        Dim myCommand As New MySqlCommand
        Dim myReader As MySqlDataReader
        Dim SQL As String
        Dim read As String

'Query de ligação ao SQL
SQL = "server=" & Chr(34) & server_mysql & Chr(34) & ";" _
         & "user id=" & Chr(34) & user_mysql & Chr(34) & ";" _
         & "password=" & Chr(34) & pass_mysql & Chr(34) & ";" _
         & "port=" & Chr(34) & port_mysql & Chr(34) & ";" _
         & "database=" & Chr(34) & bd_mysql & Chr(34)

        conn.ConnectionString = SQL

        Try
'Abres a ligação
            conn.Open()
        
    myCommand.Connection = conn
'Escreves a query SQL
            myCommand.CommandText = "QUERY SQL"
'Executa a query
            read = myCommand.ExecuteScalar
'fechas a ligação
conn.close()
'Apanha o erro em caso de erro, mostra uma mensagem e corta a connecção
catch myerror as MySQLException
MessageBox.Show("Erro durante a query: :" & myerror.message)
conn.dispose()
end try

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não foi claro o suficiente... SQL Express ou seja Microsoft SQL Server

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim eu percebi,mas eu só trabalhei com MySQL (na minha opiniao, mais facil de trabalhar, apesar de ser quase a mesma coisa)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Option Strict On
Option Explicit On

Imports System.Data.SqlClient

        Dim conn As New SqlConnection("Data Source=meu\sqlexpress;Initial Catalog=moedas;Integrated Security=SSPI;")
        Dim comm As New SqlCommand
        Try
            conn.Open()
            comm.Connection = conn
            comm.CommandType = CommandType.Text
            comm.CommandText = "insert into tipomoeda values(1,'tipo','')"
            comm.ExecuteNonQuery()
            conn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Const constr As String = "Data Source=.\SQLEXPRESS;" & _
        "AttachDbFilename='C:\Users\David\Desktop\CVB - Contabilidade\CVB-Contabilidade\CVB-Contabilidade\plantas.mdf';" & _
        "Integrated Security=True;Connect Timeout=30;" & _
        "User Instance=True"
        Dim db As New SqlConnection(constr)
        db.Open()
        Dim cmdInserir As SqlCommand
        cmdInserir = New SqlCommand("INSERT INTO Plantas(Nome,Qualidade,Preço,Designação) VALUES(@nome,@qualidade,@preço,@designação)", db)
        cmdInserir.Parameters.Add("@nome", SqlDbType.VarChar, 255).Value = txtnome.Text()
        cmdInserir.Parameters.Add("@qualidade", SqlDbType.VarChar, 255).Value = txtqua.Text()
        cmdInserir.Parameters.Add("@preço", SqlDbType.VarChar, 255).Value = txtpre.Text()
        cmdInserir.Parameters.Add("@designação", SqlDbType.VarChar, 255).Value = txtnum.Text()
        db.Close()


    End Sub
End Class

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pt Freelancer, tu nesse código só estás a criar o SqlCommand. Falta-te um cmdInserir.ExecuteNonQuery para o INSERT ser executado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok novo código... mas agora tenho que fazer Execute SQL nas opções da tabela para ver tudo... ou seja

52184913us9.th.jpg

98842314jt7.th.jpg

É normal?

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ligacao As SqlConnection
        Dim cmdInserir As SqlCommand
        Dim NrLinhasAfectadas As Integer = 0
        Try
            ligacao = New SqlConnection("Data Source=.\SQLEXPRESS;" & _
            "AttachDbFilename='C:\Users\David\Desktop\CVB - Contabilidade\CVB-Contabilidade\CVB-Contabilidade\plantas.mdf';" & _
            "Integrated Security=True;Connect Timeout=30;" & _
            "User Instance=True")
            cmdInserir = New SqlCommand("INSERT INTO Plantas(Nome,Qualidade,Preço,Designação) VALUES(@nome,@qualidade,@preço,@designação)", ligacao)
            cmdInserir.Parameters.Add("@nome", SqlDbType.VarChar, 255).Value = txtnome.Text()
            cmdInserir.Parameters.Add("@qualidade", SqlDbType.VarChar, 255).Value = txtqua.Text()
            cmdInserir.Parameters.Add("@preço", SqlDbType.VarChar, 255).Value = txtpre.Text()
            cmdInserir.Parameters.Add("@designação", SqlDbType.VarChar, 255).Value = txtnum.Text()

            ligacao.Open()
            NrLinhasAfectadas = cmdInserir.ExecuteNonQuery()
            If NrLinhasAfectadas > 0 Then
                MessageBox.Show("Altereção com Sucesso", "CVB", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Else
                MessageBox.Show("Não foi possível inserir o registo. Tente novamente.", "CVB", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        Finally
            ligacao.Close()
        End Try

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desta maneira tenho de reiniciar o projecto para poder ver ou modificar o que acabei de inserir... tenho alguma coisa mal?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem vou deixar assim até amanha... tenho o seguinte código:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ligacao As SqlConnection
        Dim cmdInserir As SqlCommand
        Dim ds As New DataSet
        Dim da As New SqlDataAdapter
        Dim cd As New SqlCommandBuilder(da)
        Dim NrLinhasAfectadas As Integer = 0
        Try
            ligacao = New SqlConnection("Data Source=.\SQLEXPRESS;" & _
            "AttachDbFilename='C:\Users\David\Desktop\CVB - Contabilidade\CVB-Contabilidade\CVB-Contabilidade\plantas.mdf';" & _
            "Integrated Security=True;Connect Timeout=30;" & _
            "User Instance=True")
            ligacao.Open()
            cmdInserir = New SqlCommand("INSERT INTO Plantas(Nome,Qualidade,Preço,Designação) VALUES(@nome,@qualidade,@preço,@designação)", ligacao)
            cmdInserir.Parameters.Add("@nome", SqlDbType.VarChar, 255).Value = txtnome.Text()
            cmdInserir.Parameters.Add("@qualidade", SqlDbType.VarChar, 255).Value = txtqua.Text()
            cmdInserir.Parameters.Add("@preço", SqlDbType.VarChar, 255).Value = txtpre.Text()
            cmdInserir.Parameters.Add("@designação", SqlDbType.VarChar, 255).Value = txtnum.Text()
            da.Update(ds, "Plantas")
            NrLinhasAfectadas = cmdInserir.ExecuteNonQuery()

            If NrLinhasAfectadas > 0 Then
                MessageBox.Show("Altereção com Sucesso", "CVB", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Else
                MessageBox.Show("Não foi possível inserir o registo. Tente novamente.", "CVB", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        Finally
        End Try

        ligacao.Close()
End Sub

55580742ji8.th.jpg

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