VB.Net/Database ADO.net/SqlCommand Update

Материал из VB Эксперт
Версия от 15:44, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Execute Update command with parameters

<source lang="vbnet"> Imports System Imports System.Data Imports System.Data.SqlClient

public class MainClass

  Shared Sub Main()
     Dim thisConnection As New SqlConnection("server=(local)\SQLEXPRESS;" & _
         "integrated security=sspi;database=MyDatabase")
     " Sql Select Query 
     Dim sql As String = "SELECT * FROM Employee"
     " Sql Update Statement
     Dim updateSql As String = _
        "UPDATE Employee " & _
        "SET FirstName = @FirstName " & _
        "WHERE ID = @ID"
     Try
        " Create Data Adapter
        Dim da As New SqlDataAdapter
        da.SelectCommand = New SqlCommand(sql, thisConnection)
        " Create and fill Dataset
        Dim ds As New DataSet
        da.Fill(ds, "Employee")
        " Get the Data Table
        Dim dt As DataTable = ds.Tables("Employee")
        " Display Rows Before Changed
        Console.WriteLine("Before altering the dataset")
        For Each row As DataRow In dt.Rows
           Console.WriteLine("{0} | {1} | {2}", _
              row("ID").ToString().PadRight(10), _
              row("FirstName").ToString().PadRight(10), _
              row("LastName"))
        Next
        " Modify city in first row
        dt.Rows(0)("FirstName") = "Ham"
        " Update Employees
        " 1. Create Command
        Dim UpdateCmd As New SqlCommand(updateSql, thisConnection)
        " 2. Map Parameters
        " 2.1 City
        UpdateCmd.Parameters.Add("@FirstName", _
           SqlDbType.NVarChar, 15, "FirstName")
        " 2.2 EmployeeId
        Dim idParam As SqlParameter = _
           UpdateCmd.Parameters.Add("@ID", _
           SqlDbType.Int, 4, "ID")
        idParam.SourceVersion = DataRowVersion.Original
        " Update employees
        da.UpdateCommand = UpdateCmd
        da.Update(ds, "Employee")
        " Display Rows After Alteration
        Console.WriteLine("=========")
        Console.WriteLine("After altering the dataset")
        For Each row As DataRow In dt.Rows
           Console.WriteLine("{0} | {1} | {2}", _
              row("ID").ToString().PadRight(10), _
              row("FirstName").ToString().PadRight(10), _
              row("LastName"))
        Next
     Catch ex As SqlException
        " Display error
        Console.WriteLine("Error: " & ex.ToString())
     Finally
        " Close Connection
        thisConnection.Close()
        Console.WriteLine("Connection Closed")
     End Try
  End Sub

End Class

      </source>


Insert command with parameters

<source lang="vbnet"> Imports System Imports System.Data Imports System.Data.SqlClient

public class MainClass

  Shared Sub Main()
     Dim thisConnection As New SqlConnection("server=(local)\SQLEXPRESS;" & _
         "integrated security=sspi;database=MyDatabase")
     " Sql Query 
     Dim sql As String = "SELECT * FROM Employee "
     Dim insertSql As String = "INSERT INTO Employee " & _
        "(ID, FirstName, LastName)VALUES" & _
        "(@ID, @FirstName, @LastName)"
     Try
        " Create Data Adapter
        Dim da As New SqlDataAdapter
        da.SelectCommand = New SqlCommand(sql, thisConnection)
        " Create and fill Dataset
        Dim ds As New DataSet
        da.Fill(ds, "Employee")
        " Get the Data Table
        Dim dt As DataTable = ds.Tables("Employee")
        " Display Rows Before Changed
        Console.WriteLine("Before altering the dataset")
        For Each row As DataRow In dt.Rows
           Console.WriteLine("{0} | {1} | {2}", _
              row("ID").ToString().PadRight(10), _
              row("FirstName").ToString().PadRight(10), _
              row("LastName"))
        Next
        " Add A Row
        Dim newRow As DataRow = dt.NewRow()
        newRow("FirstName") = "Edna"
        newRow("LastName") = "Everage"
        newRow("ID") = "2"
        dt.Rows.Add(newRow)
        " Display Rows After Alteration
        Console.WriteLine("=========")
        Console.WriteLine("After altering the dataset")
        For Each row As DataRow In dt.Rows
           Console.WriteLine("{0} | {1} | {2}", _
              row("ID").ToString().PadRight(10), _
              row("FirstName").ToString().PadRight(10), _
              row("LastName"))
        Next
        " Insert employees
        " 1. Create command
        Dim insertCmd As New SqlCommand(insertSql, thisConnection)
        " 2. Map parameters
        insertCmd.Parameters.Add("@FirstName", _
           SqlDbType.NVarChar, 10, "FirstName")
        insertCmd.Parameters.Add("@LastName", _
           SqlDbType.NVarChar, 20, "LastName")
        insertCmd.Parameters.Add("@ID", _
           SqlDbType.Int, 15, "ID")
        " 3. Insert employees
        da.InsertCommand = insertCmd
        da.Update(ds, "Employee")
     Catch ex As SqlException
        " Display error
        Console.WriteLine("Error: " & ex.ToString())
     Finally
        " Close Connection
        thisConnection.Close()
        Console.WriteLine("Connection Closed")
     End Try
  End Sub

End Class

      </source>