VB.Net/Database ADO.net/Database Utility

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

GUI based SQL command executer

<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 Label1 As System.Windows.Forms.Label
  Friend WithEvents Label2 As System.Windows.Forms.Label
  Friend WithEvents SqlConnection1 As System.Data.SqlClient.SqlConnection
  Friend WithEvents SqlStatement As System.Windows.Forms.TextBox
  Friend WithEvents ResultBox As System.Windows.Forms.TextBox
  Friend WithEvents ExecuteButton As System.Windows.Forms.Button
  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
     Me.SqlStatement = New System.Windows.Forms.TextBox
     Me.ExecuteButton = New System.Windows.Forms.Button
     Me.ResultBox = New System.Windows.Forms.TextBox
     Me.Label1 = New System.Windows.Forms.Label
     Me.Label2 = New System.Windows.Forms.Label
     Me.SqlConnection1 = New System.Data.SqlClient.SqlConnection
     Me.SuspendLayout()
     "
     "SqlStatement
     "
     Me.SqlStatement.Location = New System.Drawing.Point(16, 32)
     Me.SqlStatement.Multiline = True
     Me.SqlStatement.Name = "SqlStatement"
     Me.SqlStatement.Size = New System.Drawing.Size(464, 96)
     Me.SqlStatement.TabIndex = 0
     Me.SqlStatement.Text = ""
     "
     "ExecuteButton
     "
     Me.ExecuteButton.Location = New System.Drawing.Point(211, 136)
     Me.ExecuteButton.Name = "ExecuteButton"
     Me.ExecuteButton.TabIndex = 1
     Me.ExecuteButton.Text = "Go"
     "
     "ResultBox
     "
     Me.ResultBox.Location = New System.Drawing.Point(16, 200)
     Me.ResultBox.Multiline = True
     Me.ResultBox.Name = "ResultBox"
     Me.ResultBox.Size = New System.Drawing.Size(464, 104)
     Me.ResultBox.TabIndex = 2
     Me.ResultBox.Text = ""
     "
     "Label1
     "
     Me.Label1.Location = New System.Drawing.Point(104, 8)
     Me.Label1.Name = "Label1"
     Me.Label1.Size = New System.Drawing.Size(288, 23)
     Me.Label1.TabIndex = 3
     Me.Label1.Text = "Type a SQL Statement below and press Go to execute it"
     "
     "Label2
     "
     Me.Label2.Location = New System.Drawing.Point(136, 176)
     Me.Label2.Name = "Label2"
     Me.Label2.Size = New System.Drawing.Size(224, 23)
     Me.Label2.TabIndex = 4
     Me.Label2.Text = "The results of your command are as follows"
     "
     "SqlConnection1
     "
     Me.SqlConnection1.ConnectionString = "server=(local)\SQLEXPRESS;" & _
         "integrated security=sspi;" & _
         "database=MyDatabase"
     "Form1
     "
     Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
     Me.ClientSize = New System.Drawing.Size(496, 317)
     Me.Controls.Add(Me.Label2)
     Me.Controls.Add(Me.Label1)
     Me.Controls.Add(Me.ResultBox)
     Me.Controls.Add(Me.ExecuteButton)
     Me.Controls.Add(Me.SqlStatement)
     Me.Name = "Form1"
     Me.Text = "Form1"
     Me.ResumeLayout(False)
  End Sub
  1. End Region
  Private Sub ExecuteButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExecuteButton.Click
     " Get SQL Query from textbox
     Dim sql As String = SqlStatement.Text
     " Create Command object
     Dim NewCommand As New SqlCommand(sql, SqlConnection1)
     Try
        " Open Connection
        SqlConnection1.Open()
        " Execute Command
        NewCommand.ExecuteNonQuery()
        " Display Result Message
        ResultBox.Text = "SQL executed successfuly"
     Catch ex As Exception
        " Display error message
        ResultBox.Text = ex.ToString()
     Finally
        SqlConnection1.Close()
     End Try
  End Sub

End Class

      </source>


Query Processor: Execute SQL command and display result in Grid

<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 Label1 As System.Windows.Forms.Label
  Friend WithEvents Label2 As System.Windows.Forms.Label
  Friend WithEvents SqlConnection1 As System.Data.SqlClient.SqlConnection
  Friend WithEvents ExecuteButton As System.Windows.Forms.Button
  Friend WithEvents SqlStatement As System.Windows.Forms.TextBox
  Friend WithEvents ResultBox As System.Windows.Forms.ListView
  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
     Me.Label1 = New System.Windows.Forms.Label
     Me.Label2 = New System.Windows.Forms.Label
     Me.ExecuteButton = New System.Windows.Forms.Button
     Me.SqlStatement = New System.Windows.Forms.TextBox
     Me.ResultBox = New System.Windows.Forms.ListView
     Me.SqlConnection1 = New System.Data.SqlClient.SqlConnection
     Me.SuspendLayout()
     "
     "Label1
     "
     Me.Label1.Location = New System.Drawing.Point(112, 8)
     Me.Label1.Name = "Label1"
     Me.Label1.Size = New System.Drawing.Size(272, 23)
     Me.Label1.TabIndex = 0
     Me.Label1.Text = "Type a SQL Query below and press Go to execute it"
     "
     "Label2
     "
     Me.Label2.Location = New System.Drawing.Point(136, 192)
     Me.Label2.Name = "Label2"
     Me.Label2.Size = New System.Drawing.Size(224, 16)
     Me.Label2.TabIndex = 1
     Me.Label2.Text = "The data matching your query is as follows"
     "
     "ExecuteButton
     "
     Me.ExecuteButton.Location = New System.Drawing.Point(200, 152)
     Me.ExecuteButton.Name = "ExecuteButton"
     Me.ExecuteButton.TabIndex = 2
     Me.ExecuteButton.Text = "Go"
     "
     "SqlStatement
     "
     Me.SqlStatement.Location = New System.Drawing.Point(16, 32)
     Me.SqlStatement.Multiline = True
     Me.SqlStatement.Name = "SqlStatement"
     Me.SqlStatement.Size = New System.Drawing.Size(464, 104)
     Me.SqlStatement.TabIndex = 3
     Me.SqlStatement.Text = ""
     "
     "ResultBox
     "
     Me.ResultBox.GridLines = True
     Me.ResultBox.Location = New System.Drawing.Point(16, 216)
     Me.ResultBox.Name = "ResultBox"
     Me.ResultBox.Size = New System.Drawing.Size(464, 152)
     Me.ResultBox.TabIndex = 4
     Me.ResultBox.View = System.Windows.Forms.View.Details
     "
     "SqlConnection1
     "
     Me.SqlConnection1.ConnectionString = "server=(local)\SQLEXPRESS;" & _
         "integrated security=sspi;" & _
         "database=MyDatabase"
     "
     "Form1
     "
     Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
     Me.ClientSize = New System.Drawing.Size(496, 373)
     Me.Controls.Add(Me.ResultBox)
     Me.Controls.Add(Me.SqlStatement)
     Me.Controls.Add(Me.ExecuteButton)
     Me.Controls.Add(Me.Label2)
     Me.Controls.Add(Me.Label1)
     Me.Name = "Form1"
     Me.Text = "QueryProcessor"
     Me.ResumeLayout(False)
  End Sub
  1. End Region
  Private Sub ExecuteButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExecuteButton.Click
     " Clear list view column headers and items
     ResultBox.Columns.Clear()
     ResultBox.Items.Clear()
     " Get SQL Query from textbox
     Dim sql As String = SqlStatement.Text
     " Create Command object
     Dim NewQuery As New SqlCommand(sql, SqlConnection1)
     Try
        " Open Connection
        SqlConnection1.Open()
        " Execute Command and Get Data 
        Dim NewReader As SqlDataReader = NewQuery.ExecuteReader()
        " Get column names for list view from data reader
        For i As Integer = 0 To NewReader.FieldCount - 1
           Dim header As New ColumnHeader
           header.Text = NewReader.GetName(i)
           ResultBox.Columns.Add(header)
        Next
        " Get rows of data and show in list view
        While NewReader.Read()
           " Create list view item
           Dim NewItem As New ListViewItem
           " Specify text and subitems of list view
           NewItem.Text = NewReader.GetValue(0).ToString()
           For i As Integer = 1 To NewReader.FieldCount - 1
              NewItem.SubItems.Add(NewReader.GetValue(i).ToString())
           Next
           " Add item to list view items collection
           ResultBox.Items.Add(NewItem)
        End While
        " Close data reader
        NewReader.Close()
     Catch ex As SqlException
        " Create and error column header
        Dim ErrorHeader As New ColumnHeader
        ErrorHeader.Text = "SQL Error"
        ResultBox.Columns.Add(ErrorHeader)
        " Add Error List Item
        Dim ErrorItem As New ListViewItem(ex.Message)
        ResultBox.Items.Add(ErrorItem)
     Catch ex As Exception
        " Create and error column header
        Dim ErrorHeader As New ColumnHeader
        ErrorHeader.Text = "Error"
        ResultBox.Columns.Add(ErrorHeader)
        " Add Error List Item
        Dim ErrorItem As New ListViewItem("An error has occurred")
        ResultBox.Items.Add(ErrorItem)
     Finally
        SqlConnection1.Close()
     End Try
  End Sub

End Class

      </source>