VB.Net by API/System.Data.SqlClient/SqlDataAdapter

Материал из VB Эксперт
Перейти к: навигация, поиск

SqlDataAdapter.FillSchema

<source lang="vbnet">

Imports System Imports System.Xml Imports System.Xml.Schema Imports System.IO Imports System.Data.SqlClient Imports System.Collections Imports System.Data

Public Class MainClass

   Shared Sub Main()
       Dim da As New SqlDataAdapter( _
                  "SELECT ID, FirstName, LastName FROM Employee", _
                  "Server=(local)\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=SSPI")
       Dim ds As New DataSet("Employee")
       da.FillSchema(ds, SchemaType.Source)
       ds.ReadXml("Employee.xml")
       Dim Table As DataTable = ds.Tables(0)
       Dim numCols As Integer = Table.Columns.Count
       Dim Row As DataRow
       For Each Row In Table.Rows
           Dim i As Integer
           For i = 0 To numCols - 1
               Console.WriteLine(Table.Columns(i).ColumnName & " = " & Row(i))
           Next
           Console.WriteLine()
       Next
   End Sub

End Class


 </source>


SqlDataAdapter.ReadXml

<source lang="vbnet">

Imports System Imports System.Xml Imports System.Xml.Schema Imports System.IO Imports System.Data.SqlClient Imports System.Collections Imports System.Data

Public Class MainClass

   Shared Sub Main()
       Dim da As New SqlDataAdapter( _
                  "SELECT ID, FirstName, LastName FROM Employee", _
                  "Server=(local)\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=SSPI")
       Dim ds As New DataSet("Employee")
       da.FillSchema(ds, SchemaType.Source)
       ds.ReadXml("Employee.xml")
       Dim Table As DataTable = ds.Tables(0)
       Dim numCols As Integer = Table.Columns.Count
       Dim Row As DataRow
       For Each Row In Table.Rows
           Dim i As Integer
           For i = 0 To numCols - 1
               Console.WriteLine(Table.Columns(i).ColumnName & " = " & Row(i))
           Next
           Console.WriteLine()
       Next
   End Sub

End Class


 </source>


SqlDataAdapter.RowUpdated

<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")
     Dim sql As String = "SELECT FirstName, LastName From Employee"
     Try
        thisConnection.Open()
        Dim thisAdapter As New SqlDataAdapter(sql, thisConnection)
        Dim cb As New SqlCommandBuilder(thisAdapter)
        Dim ds As New DataSet
        thisAdapter.Fill(ds, 0, 1, "Customers")
        AddHandler thisAdapter.RowUpdating, AddressOf OnRowUpdating
        AddHandler thisAdapter.RowUpdated, AddressOf OnRowUpdated
        Dim dt As DataTable = ds.Tables("Customers")
        dt.Rows(0)(1) = "The Volcano Corporation"
        thisAdapter.Update(ds, "Customers")
        RemoveHandler thisAdapter.RowUpdating, AddressOf OnRowUpdating
        RemoveHandler thisAdapter.RowUpdated, AddressOf OnRowUpdated
     Catch ex As SqlException
        Console.WriteLine(ex.Message)
     Finally
        " Close Connection
        thisConnection.Close()
     End Try
  End Sub
  " Handler for OnRowUpdating
  Shared Private Sub OnRowUpdating(ByVal sender As Object, ByVal e As SqlRowUpdatingEventArgs)
     Console.WriteLine("OnRowUpdating Event")
     If Not e.Status = UpdateStatus.Continue Then
        Console.WriteLine("RowStatus = " & e.Status.ToString())
     End If
  End Sub
  " Handler for OnRowUpdated
  Shared Private Sub OnRowUpdated(ByVal sender As Object, ByVal e As SqlRowUpdatedEventArgs)
     Console.WriteLine("OnRowUpdated Event")
     Console.WriteLine("Records Affected = " & e.RecordsAffected.ToString())
  End Sub

End Class


 </source>


SqlDataAdapter.RowUpdating

<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")
     Dim sql As String = "SELECT FirstName, LastName From Employee"
     Try
        thisConnection.Open()
        Dim thisAdapter As New SqlDataAdapter(sql, thisConnection)
        Dim cb As New SqlCommandBuilder(thisAdapter)
        Dim ds As New DataSet
        thisAdapter.Fill(ds, 0, 1, "Customers")
        AddHandler thisAdapter.RowUpdating, AddressOf OnRowUpdating
        AddHandler thisAdapter.RowUpdated, AddressOf OnRowUpdated
        Dim dt As DataTable = ds.Tables("Customers")
        dt.Rows(0)(1) = "The Volcano Corporation"
        thisAdapter.Update(ds, "Customers")
        RemoveHandler thisAdapter.RowUpdating, AddressOf OnRowUpdating
        RemoveHandler thisAdapter.RowUpdated, AddressOf OnRowUpdated
     Catch ex As SqlException
        Console.WriteLine(ex.Message)
     Finally
        " Close Connection
        thisConnection.Close()
     End Try
  End Sub
  " Handler for OnRowUpdating
  Shared Private Sub OnRowUpdating(ByVal sender As Object, ByVal e As SqlRowUpdatingEventArgs)
     Console.WriteLine("OnRowUpdating Event")
     If Not e.Status = UpdateStatus.Continue Then
        Console.WriteLine("RowStatus = " & e.Status.ToString())
     End If
  End Sub
  " Handler for OnRowUpdated
  Shared Private Sub OnRowUpdated(ByVal sender As Object, ByVal e As SqlRowUpdatedEventArgs)
     Console.WriteLine("OnRowUpdated Event")
     Console.WriteLine("Records Affected = " & e.RecordsAffected.ToString())
  End Sub

End Class


 </source>


SqlDataAdapter.SelectCommand

<source lang="vbnet">

Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ruponentModel
Imports System.Windows.Forms
Imports System.Data
Imports System.Data.SqlClient

Public Class MainClass

   Shared Sub Main(  )
       Application.Run(New ADOForm1() )
   End Sub
  

End Class

 Public Class ADOForm1
    Inherits System.Windows.Forms.Form
    Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
    Private components As System.ruponentModel.Container
    " private System.Data.ADO.ADOConnection myConnection;
    Private myConnection As System.Data.SqlClient.SqlConnection
    Private myDataSet As System.Data.DataSet
    Private myCommand As System.Data.SqlClient.SqlCommand
    Private myCommand2 As System.Data.SqlClient.SqlCommand
    Private myDataAdapter As System.Data.SqlClient.SqlDataAdapter
    Private myDataAdapter2 As System.Data.SqlClient.SqlDataAdapter
    Public Sub New(  )
        InitializeComponent(  )
        " create the connection object and open it
        Dim connectionString As String = _
            "server=localhost; uid=sa; " & _
            "pwd=YourPassword; database=northwind"
        myConnection = _
        New System.Data.SqlClient.SqlConnection(connectionString)
        myConnection.Open(  )
        " create the DataSet and set a property
        myDataSet = New System.Data.DataSet(  )
        myDataSet.CaseSensitive = True
        " create the SqlCommand  object and assign the
        " connection and the select statement
        myCommand = New System.Data.SqlClient.SqlCommand(  )
        myCommand.Connection = myConnection
        myCommand.rumandText = "Select * from Employees"
        myCommand2 = New System.Data.SqlClient.SqlCommand(  )
        myCommand2.Connection = myConnection
        myCommand2.rumandText = "Select * from Orders"
        " create the myDataAdapter object and pass in the
        " SQL Command object and establish the table mappings
        myDataAdapter = New System.Data.SqlClient.SqlDataAdapter(  )
        myDataAdapter2 = New System.Data.SqlClient.SqlDataAdapter(  )
        myDataAdapter.SelectCommand = myCommand
        myDataAdapter2.SelectCommand = myCommand2
        myDataAdapter.TableMappings.Add("Table", "Employees")
        myDataAdapter2.TableMappings.Add("Table", "Orders")
        " Tell the myDataAdapter object to fill the DataSet
        myDataAdapter.Fill(myDataSet)
        myDataAdapter2.Fill(myDataSet)
        Dim myDataRelation As System.Data.DataRelation
        Dim dataColumn1 As System.Data.DataColumn
        Dim dataColumn2 As System.Data.DataColumn
        dataColumn1 = _
            myDataSet.Tables("Employees").Columns("EmployeeID")
        dataColumn2 = _
            myDataSet.Tables("Orders").Columns("EmployeeID")
        myDataRelation = New System.Data.DataRelation( _
            "EmployeesToOrders", dataColumn1, dataColumn2)
        myDataSet.Relations.Add(myDataRelation)
        Dim dataSetView As DataViewManager = _
            myDataSet.DefaultViewManager
        " display it in the grid
        DataGrid1.DataSource = _
            dataSetView
        DataGrid1.DataMember = "Employees"
    End Sub "New
    Private Sub InitializeComponent(  )
        Me.ruponents = New System.ruponentModel.Container(  )
        Me.dataGrid1 = New System.Windows.Forms.DataGrid(  )
        dataGrid1.Location = New System.Drawing.Point(48, 24)
        dataGrid1.Size = New System.Drawing.Size(368, 160)
        dataGrid1.TabIndex = 0
        Me.Text = "ADOFrm1"
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(464, 273)
        Me.Controls.Add(dataGrid1)
    End Sub 
End Class 
  
   
 </source>


SqlDataAdapter.TableMappings.Add

<source lang="vbnet"> Imports System Imports System.Data Imports System.Windows.Forms Imports System.Data.SqlClient public class MainClass

  Shared Sub Main()
      Dim form1 As Form = New Form1
      Application.Run(form1)
  End Sub

End Class


Public Class Form1

  Inherits System.Windows.Forms.Form
  1. Region " Windows Form Designer generated code "
  Public Sub New()
     MyBase.New()
     "This call is required by the Windows Form Designer.
     InitializeComponent()
     "Add any initialization after the InitializeComponent() call
  End Sub
  "Form overrides dispose to clean up the component list.
  Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
     If disposing Then
        If Not (components Is Nothing) Then
           components.Dispose()
        End If
     End If
     MyBase.Dispose(disposing)
  End Sub
  "Required by the Windows Form Designer
  Private components As System.ruponentModel.IContainer
  "NOTE: The following procedure is required by the Windows Form Designer
  "It can be modified using the Windows Form Designer.  
  "Do not modify it using the code editor.
  Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
  Friend WithEvents DataSet1 As System.Data.DataSet
  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
     Me.DataGrid1 = New System.Windows.Forms.DataGrid
     Me.DataSet1 = New System.Data.DataSet
     CType(Me.DataGrid1, System.ruponentModel.ISupportInitialize).BeginInit()
     CType(Me.DataSet1, System.ruponentModel.ISupportInitialize).BeginInit()
     Me.SuspendLayout()
     "
     "DataGrid1
     "
     Me.DataGrid1.DataMember = ""
     Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText
     Me.DataGrid1.Location = New System.Drawing.Point(0, 0)
     Me.DataGrid1.Name = "DataGrid1"
     Me.DataGrid1.Size = New System.Drawing.Size(416, 224)
     Me.DataGrid1.TabIndex = 0
     "
     "DataSet1
     "
     Me.DataSet1.DataSetName = "NewDataSet"
     Me.DataSet1.Locale = New System.Globalization.CultureInfo("en-GB")
     "
     "Form1
     "
     Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
     Me.ClientSize = New System.Drawing.Size(408, 221)
     Me.Controls.Add(Me.DataGrid1)
     Me.Name = "Form1"
     Me.Text = "Form1"
     CType(Me.DataGrid1, System.ruponentModel.ISupportInitialize).EndInit()
     CType(Me.DataSet1, System.ruponentModel.ISupportInitialize).EndInit()
     Me.ResumeLayout(False)
  End Sub
  1. End Region
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     "Create Connection object
     Dim thisConnection As New SqlConnection _
        ("server=(local)\SQLEXPRESS;" & _
         "integrated security=sspi;" & _
         "database=MyDatabase")
     " Sql Queries 
     Dim sql1 As String = _
        "SELECT * FROM Employee; "
     Dim sql2 As String = _
        "SELECT * FROM Employee"
     Dim sql As String = sql1 & sql2
     " Create Data Adapter
     Dim da As New SqlDataAdapter(sql, thisConnection)
     " Map Default table names to Employees and Orders
     da.TableMappings.Add("Table", "Employee")
     da.TableMappings.Add("Table1", "Employee")
     " Fill Dataset
     da.Fill(DataSet1)
     " Create a relation between the two tables
     "Dim dr As New DataRelation( _
     "   "EmployeeOrder", _
     "   DataSet1.Tables(0).Columns("ID"), _
     "   DataSet1.Tables(1).Columns("ID"))
     "DataSet1.Relations.Add(dr)
     " Bind the data to the grid at runtime
     DataGrid1.SetDataBinding(DataSet1, "Employee")
  End Sub

End Class


 </source>


SqlDataAdapter.WriteXml

<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"
     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")
        " Extract DataSet to XML file
        ds.WriteXml("Employee.xml")
     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>