Ir para o conteúdo

Inserir dados em base de dados SQL

Abaixo descritos estão propostas de código para inserção e actualização de dados numa base de dados SQL.

Importante: Para que os tipos usados nos blocos descritos sejam reconhecidos, é necessária a seguinte linha de importação:

Imports System.Data.SqlClient

Inserir dados

        ' Texto de ligação à base de dados
        Dim myConnectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename='C:\myDatabase.mdf';Integrated Security=True;User Instance=True"

        ' Comando que irá inserir dados na tabela "MyTable" em que os campos
        ' "username" e "date" são passados através de parâmetros
        Dim SQL As String = "INSERT INTO myTable([username], [date]) VALUES (@username, @date);"

        ' Cria uma nova ligação à base de dados
        Dim connection As New SqlConnection(myConnectionString)

        ' Criação do comando indicando a instrução e a ligação
        Dim command As New SqlCommand(SQL, connection)

        ' Indicação dos parâmetros que serão inseridos
        command.Parameters.Add("@username", SqlDbType.VarChar).Value = "jpaulino"
        command.Parameters.Add("@date", SqlDbType.DateTime).Value = DateTime.Now

        ' Abre a ligação, executa o comando e guarda em "x" o número de registos inseridos
        connection.Open()

        Dim x As Integer = command.ExecuteNonQuery()
        If x < 1 Then
            MessageBox.Show("A operação efectuada não retomou qualquer resultado.")
        End If

        ' Fecha a ligação e limpa as variáveis
        connection.Close()
        connection = Nothing
        command = Nothing

Actualizar dados

        ' Texto de ligação à base de dados

        Dim myConnectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename='C:\myDatabase.mdf';Integrated Security=True;User Instance=True"

        ' Comando que irá actualizar os dados na tabela "MyTable" em que os campos
        ' "username" e "date" são passados através de parâmetros (o ID é um exemplo de um identificador único)
        Dim SQL As String = "UPDATE myTable SET [username] = @username,[date] = @date WHERE [id] = @id"

        ' Cria uma nova ligação à base de dados
        Dim connection As New SqlConnection(myConnectionString)

        ' Criação do comando indicando a instrução e a ligação
        Dim command As New SqlCommand(SQL, connection)

        ' Indicação dos parâmetros que serão actualizados
        command.Parameters.Add("@username", SqlDbType.VarChar).Value = "jpaulino2"
        command.Parameters.Add("@date", SqlDbType.DateTime).Value = DateTime.Now
        command.Parameters.Add("@id", SqlDbType.Int).Value = 4

        ' Abre a ligação, executa o comando e guarda em "x" o número de registos actualizados
        connection.Open()

        Dim x As Integer = command.ExecuteNonQuery()
        If x < 1 Then
            MessageBox.Show("A operação efectuada não retomou qualquer resultado.")
        End If

        ' Fecha a ligação e limpa as variáveis
        connection.Close()
        connection = Nothing
        command = Nothing