VB.Net/Database ADO.net/SqlCommand Select

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

Execute two queries together

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 1
      Dim sql1 As String ="SELECT FirstName FROM Employee;  "
      "Sql Query 2
      Dim sql2 As String ="SELECT LastName FROM Employee;"
      "Combine queries
      Dim sql As String = sql1 & sql2
      "Create Command object
      Dim thisCommand As New SqlCommand _
         (sql, thisConnection)
      Try
         " Open Connection
         thisConnection.Open()
         Console.WriteLine("Connection Opened")
         " Execute Query
         Dim thisReader As SqlDataReader = thisCommand.ExecuteReader()

      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


Get data from "Select" command

Imports System
Imports System.Collections
Imports System.Data
Imports System.IO
Imports System.Xml.Serialization
Imports System.Windows.Forms
Imports System.Data.SqlClient

Public Class MainClass
    Shared Dim WithEvents con As SqlConnection
    Shared Sub Main()
        con = New SqlConnection("Server=(local)\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=SSPI") 
        " Create the command object
        Dim str As String = "SELECT ID, FirstName, LastName FROM Employee"
        Dim cmd As New SqlCommand(str, con)
        Dim da As New SqlDataAdapter(cmd)
        Dim ds As New DataSet()
        da.Fill(ds, "Employee")
        Dim dc As DataColumn
        For Each dc In ds.Tables(0).Columns
            Console.Write("{0,15}", dc.ColumnName)
        Next
        Console.Write(vbCrLf)
        Dim dr As DataRow
        For Each dr In ds.Tables(0).Rows
            Dim i As Integer
            For i = 1 To ds.Tables(0).Columns.Count
                Console.Write("{0,15}", dr(i - 1))
            Next i
            Console.Write(vbCrLf)
        Next
    End Sub
End Class


Output data from "Select" command in a table format

Imports System
Imports System.Collections
Imports System.Data
Imports System.IO
Imports System.Xml.Serialization
Imports System.Windows.Forms
Imports System.Data.SqlClient

Public Class MainClass
    Shared Dim WithEvents con As SqlConnection
    Shared Sub Main()
        con = New SqlConnection("Server=(local)\SQLEXPRESS;Initial Catalog=MyDatabase;Integrated Security=SSPI") 
        " Create the command object
        Dim str As String = "SELECT ID, FirstName, LastName FROM Employee"
        Dim cmd As New SqlCommand(str, con)
        Dim da As New SqlDataAdapter(cmd)
        Dim ds As New DataSet()
        da.Fill(ds, "Employee")
        Dim dc As DataColumn
        For Each dc In ds.Tables(0).Columns
            Console.Write("{0,15}", dc.ColumnName)
        Next
        Console.Write(vbCrLf)
        Dim dr As DataRow
        For Each dr In ds.Tables(0).Rows
            Dim i As Integer
            For i = 1 To ds.Tables(0).Columns.Count
                Console.Write("{0,15}", dr(i - 1))
            Next i
            Console.Write(vbCrLf)
        Next
    End Sub
End Class


Read the result sets from two "select" command

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 1
      Dim sql1 As String ="SELECT FirstName, LastName FROM Employee;  "
      "Sql Query 2
      Dim sql2 As String ="SELECT LastName, FirstName FROM Employee;"
      "Combine queries
      Dim sql As String = sql1 & sql2
      "Create Command object
      Dim thisCommand As New SqlCommand _
         (sql, thisConnection)
      Try
         " Open Connection
         thisConnection.Open()
         Console.WriteLine("Connection Opened")
         " Execute Query
         Dim thisReader As SqlDataReader = thisCommand.ExecuteReader()
         " Loop through result sets
         Do
            " Fetch Data
            While (thisReader.Read())
               Console.WriteLine("{0} | {1}", _
               thisReader(0), _
               thisReader(1))
            End While
            Console.WriteLine("".PadLeft(60, "="))
         Loop While (thisReader.NextResult())

         "Close DataReader
         thisReader.Close()
      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


SqlDataAdapter: "select" command and the connection string

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


Use SqlDataReader to read result set from "select" command

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")
      "Create Command object
      Dim thisCommand As New SqlCommand _
         ("SELECT FirstName, LastName FROM Employee",thisConnection)
      Try
         " Open Connection
         thisConnection.Open()
         Console.WriteLine("Connection Opened")
         " Execute Query
         Dim thisReader As SqlDataReader = thisCommand.ExecuteReader()
         While (thisReader.Read())
            Console.WriteLine("Employee: {0} {1}", _
               thisReader.GetValue(0), thisReader.GetValue(1))
         End While
      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