VB.Net/Database ADO.net/Data Bind to TextBox

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

Bind data into TextBox and Navigate using two Buttons

<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
  " Declare a binding manager field
  Private bMgr As BindingManagerBase
  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 TextBox1 As System.Windows.Forms.TextBox
  Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
  Friend WithEvents buttonBack As System.Windows.Forms.Button
  Friend WithEvents buttonNext As System.Windows.Forms.Button
  Friend WithEvents DataSet1 As System.Data.DataSet
  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
     Me.TextBox1 = New System.Windows.Forms.TextBox
     Me.TextBox2 = New System.Windows.Forms.TextBox
     Me.buttonBack = New System.Windows.Forms.Button
     Me.buttonNext = New System.Windows.Forms.Button
     Me.DataSet1 = New System.Data.DataSet
     CType(Me.DataSet1, System.ruponentModel.ISupportInitialize).BeginInit()
     Me.SuspendLayout()
     "
     "TextBox1
     "
     Me.TextBox1.Location = New System.Drawing.Point(8, 8)
     Me.TextBox1.Name = "TextBox1"
     Me.TextBox1.Size = New System.Drawing.Size(176, 20)
     Me.TextBox1.TabIndex = 0
     Me.TextBox1.Text = "TextBox1"
     "
     "TextBox2
     "
     Me.TextBox2.Location = New System.Drawing.Point(8, 40)
     Me.TextBox2.Name = "TextBox2"
     Me.TextBox2.Size = New System.Drawing.Size(176, 20)
     Me.TextBox2.TabIndex = 1
     Me.TextBox2.Text = "TextBox2"
     "
     "buttonBack
     "
     Me.buttonBack.Location = New System.Drawing.Point(8, 72)
     Me.buttonBack.Name = "buttonBack"
     Me.buttonBack.TabIndex = 2
     Me.buttonBack.Text = "<< Back"
     "
     "buttonNext
     "
     Me.buttonNext.Location = New System.Drawing.Point(112, 72)
     Me.buttonNext.Name = "buttonNext"
     Me.buttonNext.TabIndex = 3
     Me.buttonNext.Text = "Next >>"
     "
     "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(200, 101)
     Me.Controls.Add(Me.buttonNext)
     Me.Controls.Add(Me.buttonBack)
     Me.Controls.Add(Me.TextBox2)
     Me.Controls.Add(Me.TextBox1)
     Me.Name = "Form1"
     Me.Text = "Form1"
     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 Query 
     Dim sql As String = _
        "SELECT * FROM Employee"
     " Create Data Adapter
     Dim da As New SqlDataAdapter(sql, thisConnection)
     " Fill Dataset
     da.Fill(DataSet1, "Employee")
     " Bind to firstname column of the employees table
     TextBox1.DataBindings.Add("text", DataSet1, "Employee.FirstName")
     " Bind to lastname column of the employees table
     TextBox2.DataBindings.Add("text", DataSet1, "Employee.LastName")
     " Create the Binding Manager
     bMgr = Me.BindingContext(DataSet1, "Employee")
  End Sub
  Private Sub buttonNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonNext.Click
     " Point to the next row and refresh the text box
     bMgr.Position += 1
  End Sub
  Private Sub buttonBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonBack.Click
     " Point to the previous row and refresh the text box
     bMgr.Position -= 1
  End Sub

End Class

      </source>


Data Binding: TextField

<source lang="vbnet"> Imports System Imports System.Data Imports System.Data.OleDb Imports System.Data.SqlClient Imports System.Collections Imports System.Windows.Forms Imports System.Resources Public Class MainClass

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

End Class

Public Class Form1

   "Form level variables
   Private strConnectionString As String = _
       "Provider=Microsoft.Jet.OLEDB.4.0;" & _
       "Data Source=Employee.mdb;"
   Private objConnection As OleDbConnection
   Private objCommand As OleDbCommand
   Private objDataAdapter As OleDbDataAdapter
   Private objDataTable As DataTable
   Private objDataReader As OleDbDataReader
   Private blnIsLoading As Boolean = True
   Private Sub Form1_Load(ByVal sender As Object, _
       ByVal e As System.EventArgs) Handles Me.Load
       "Initialize the Connection object
       objConnection = New OleDbConnection(strConnectionString)
       "Initialize the Command object
       objCommand = New OleDbCommand("SELECT ID, FirstName " & _
           "FROM Employee", objConnection)
       "Initialize the DataAdapter object and set the SelectCommand property
       objDataAdapter = New OleDbDataAdapter
       objDataAdapter.SelectCommand = objCommand
       "Initialize the DataTable object
       objDataTable = New DataTable
       "Populate the DataTable
       objDataAdapter.Fill(objDataTable)
       "Bind the DataTable to the ComboBox
       ComboBox1.DataSource = objDataTable
       ComboBox1.DisplayMember = "FirstName"
       ComboBox1.ValueMember = "ID"
       "Turn off the loading flag
       blnIsLoading = False
       "Clean up
       objDataAdapter.Dispose()
       objDataAdapter = Nothing
       objCommand.Dispose()
       objCommand = Nothing
       objConnection.Dispose()
       objConnection = Nothing
   End Sub
   Private Sub ComboBox1_SelectedValueChanged(ByVal sender As Object, _
       ByVal e As System.EventArgs) Handles ComboBox1.SelectedValueChanged
       "Exit if the combo box is being loaded
       If blnIsLoading Then
           Exit Sub
       End If
       "Initialize the Connection object and open it
       objConnection = New OleDbConnection(strConnectionString)
       objConnection.Open()
       "Initialize the Command object
       objCommand = New OleDbCommand
       "Set the objCommand object properties
       objCommand.rumandText = "StoreProcedureForEmployee"
       objCommand.rumandType = CommandType.StoredProcedure
       objCommand.Connection = objConnection
       "Add the required parameter for the query

" objCommand.Parameters.Add("@ID", OleDbType.Guid, 16).Value = _

"           New Guid(ComboBox1.SelectedValue.ToString)
       objCommand.Parameters.Add("@ID", OleDbType.TinyInt, 8).Value = CInt(ComboBox1.SelectedValue.ToString)
       "Execute the Query
       objDataReader = objCommand.ExecuteReader()
       "If we have data then display the project description
       If objDataReader.HasRows Then
           objDataReader.Read()
           TextBox1.Text = objDataReader.Item("LastName")
       End If
       "Close the DataReader and Connection
       objDataReader.Close()
       objConnection.Close()
       "Clean up
       objDataReader = Nothing
       objCommand.Dispose()
       objCommand = Nothing
       objConnection.Dispose()
       objConnection = Nothing
   End Sub

End Class

<Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Public Class Form1

   Inherits System.Windows.Forms.Form
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing AndAlso components IsNot Nothing Then
           components.Dispose()
       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.
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.ruboBox1 = New System.Windows.Forms.ruboBox
       Me.Label1 = New System.Windows.Forms.Label
       Me.TextBox1 = New System.Windows.Forms.TextBox
       Me.Label2 = New System.Windows.Forms.Label
       Me.SuspendLayout()
       "
       "ComboBox1
       "
       Me.ruboBox1.DropDownStyle = System.Windows.Forms.ruboBoxStyle.DropDownList
       Me.ruboBox1.FormattingEnabled = True
       Me.ruboBox1.Location = New System.Drawing.Point(76, 13)
       Me.ruboBox1.Name = "ComboBox1"
       Me.ruboBox1.Size = New System.Drawing.Size(205, 21)
       Me.ruboBox1.TabIndex = 3
       "
       "Label1
       "
       Me.Label1.AutoSize = True
       Me.Label1.Location = New System.Drawing.Point(13, 16)
       Me.Label1.Name = "Label1"
       Me.Label1.Size = New System.Drawing.Size(41, 13)
       Me.Label1.TabIndex = 2
       Me.Label1.Text = "Projects"
       "
       "TextBox1
       "
       Me.TextBox1.Location = New System.Drawing.Point(76, 44)
       Me.TextBox1.Name = "TextBox1"
       Me.TextBox1.Size = New System.Drawing.Size(204, 20)
       Me.TextBox1.TabIndex = 5
       "
       "Label2
       "
       Me.Label2.AutoSize = True
       Me.Label2.Location = New System.Drawing.Point(13, 47)
       Me.Label2.Name = "Label2"
       Me.Label2.Size = New System.Drawing.Size(56, 13)
       Me.Label2.TabIndex = 4
       Me.Label2.Text = "Last Name"
       "
       "Form1
       "
       Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
       Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
       Me.ClientSize = New System.Drawing.Size(292, 76)
       Me.Controls.Add(Me.TextBox1)
       Me.Controls.Add(Me.Label2)
       Me.Controls.Add(Me.ruboBox1)
       Me.Controls.Add(Me.Label1)
       Me.Name = "Form1"
       Me.Text = "Form1"
       Me.ResumeLayout(False)
       Me.PerformLayout()
   End Sub
   Friend WithEvents ComboBox1 As System.Windows.Forms.ruboBox
   Friend WithEvents Label1 As System.Windows.Forms.Label
   Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
   Friend WithEvents Label2 As System.Windows.Forms.Label

End Class

      </source>

<A href="http://www.vbex.ru/Code/VBDownload/Employee.zip">Employee.zip( 7 k)</a>


DataView Bind to TextBox

<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 TextBox1 As System.Windows.Forms.TextBox
  Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
  Friend WithEvents DataSet1 As System.Data.DataSet
  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
     Me.TextBox1 = New System.Windows.Forms.TextBox
     Me.TextBox2 = New System.Windows.Forms.TextBox
     Me.DataSet1 = New System.Data.DataSet
     CType(Me.DataSet1, System.ruponentModel.ISupportInitialize).BeginInit()
     Me.SuspendLayout()
     "
     "TextBox1
     "
     Me.TextBox1.Location = New System.Drawing.Point(8, 8)
     Me.TextBox1.Name = "TextBox1"
     Me.TextBox1.Size = New System.Drawing.Size(200, 20)
     Me.TextBox1.TabIndex = 0
     Me.TextBox1.Text = "TextBox1"
     "
     "TextBox2
     "
     Me.TextBox2.Location = New System.Drawing.Point(8, 32)
     Me.TextBox2.Name = "TextBox2"
     Me.TextBox2.Size = New System.Drawing.Size(200, 20)
     Me.TextBox2.TabIndex = 1
     Me.TextBox2.Text = "TextBox2"
     "
     "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(216, 61)
     Me.Controls.Add(Me.TextBox2)
     Me.Controls.Add(Me.TextBox1)
     Me.Name = "Form1"
     Me.Text = "Form1"
     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 Query 
     Dim sql As String = _
        "SELECT * FROM Employee"
     " Create Data Adapter
     Dim da As New SqlDataAdapter(sql, thisConnection)
     " Fill Dataset and Get Data Table
     da.Fill(DataSet1, "Employee")
     Dim dt As DataTable = DataSet1.Tables("Employee")
     " Create a DataView with Filter and Sort Order
     Dim dv As New DataView(dt, _
        "ID="1"", "FirstName", _
        DataViewRowState.CurrentRows)
     " Bind TextBox1 to FirstName column of the Employees table
     TextBox1.DataBindings.Add("text", dv, "FirstName")
     " Bind TextBox2 to LastName column of the Products table
     TextBox2.DataBindings.Add("text", dv, "LastName")
  End Sub

End Class

      </source>