This article can serve the following topics as well:
Step by step tutorial on how to display a data (bind a data) in the text box controls and data grid view in visual studio 2005.
This can be the perfect vb net tutorial or asp net tutorial for vb net three tier application or asp net application using asp net 2.0 and vb net 2.0.
By reading this article learner can distinctly distinguish the presentation layer, business layer and data access layer and understand the logic of the code.
Main article starts here
In the .NET Framework 2.0, any object that exposes public properties can serve as a data source.
In this application I have just used one form and one class named customer to make the tutorial easier for the beginners.
To make the readers clear on what are the data in the customers and make the data binding clear, this application creates an array of Customer objects and uses the BindingContext to navigate through the array of objects in much the same way as you would navigate through records in a DataSet.
Step 1
First open a project in .net 2005 and add a form named Customer having following controls:
4 text boxes named txtCustName, txtCustAddress,txtCustPhone,txtCustMobile
4 labels and write the logical text
1 Data grid view named grdDisplay
3 buttons named cmdPrev, cmdNext,cmdExit
Step 2
Add a class named clsCustomer and write the following code:
Public Class clsCustomer
#Region "Private Declarations"
Private _mCustName As String
Private _mCustAdd As String
Private _mCustPhone As Long
Private _mCustMobile As Long
#End Region
#Region "Public Declarations"
Public Property CustName() As String
Get
Return _mCustName
End Get
Set(ByVal value As String)
_mCustName = value
End Set
End Property
Public Property CustAddress() As String
Get
Return _mCustAdd
End Get
Set(ByVal value As String)
_mCustAdd = value
End Set
End Property
Public Property CustPhone() As Long
Get
Return _mCustPhone
End Get
Set(ByVal value As Long)
_mCustPhone = value
End Set
End Property
Public Property CustMobile() As Long
Get
Return _mCustMobile
End Get
Set(ByVal value As Long)
_mCustMobile = value
End Set
End Property
#End Region
End Class
(Note in this above class I have declared the public properties of the customer)
Step 3
Now in the form add the follwoing code
Public Class Customer
Private Customers(3) As clsCustomer
Private myBinding As BindingManagerBase
' In the above declarations there is a customer collection of 4 customers and binding manager
Private Sub LoadCustomers()
' Customers can be loaded manually for testing purpose but
' here we can retrieve the information from the database
' for more on retrieve from the database go to
' How to get data from sql server database from visual basic .net or asp.net application
Customers(0) = New clsCustomer
Customers(0).CustName = "Harry Potter"
Customers(0).CustAddress = "Potter Village"
Customers(0).CustMobile = 6665555
Customers(0).CustPhone = 999945444
Customers(1) = New clsCustomer
Customers(1).CustName = "Bat Man"
Customers(1).CustAddress = "Bat Cave"
Customers(1).CustMobile = 666
Customers(1).CustPhone = 999
Customers(2) = New clsCustomer
Customers(2).CustName = "Spiderman"
Customers(2).CustAddress = " Spider Web"
Customers(2).CustMobile = 111111
Customers(2).CustPhone = 2222222
Customers(3) = New clsCustomer
Customers(3).CustName = "Hulk"
Customers(3).CustAddress = "Hulk house"
Customers(3).CustMobile = 55555
Customers(3).CustPhone = 44444
End Sub
Private Sub cmdPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrev.Click
myBinding.Position -= 1
End Sub
Private Sub cmdNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNext.Click
Private Sub cmdNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNext.Click
myBinding.Position += 1
End Sub
Private Sub cmdExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExit.Click
Me.Close()
End Sub
Private Sub Customer_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
LoadCustomers()
txtCustName.DataBindings.Add("Text", Customers, "CustName")
txtCustAdd.DataBindings.Add("Text", Customers, "CustAddress")
txtCustMobile.DataBindings.Add("Text", Customers, "CustMobile")
txtCustPhone.DataBindings.Add("Text", Customers, "CustPhone")
'Binding the text boxes to the customers object
myBinding = BindingContext.Item(Customers)
grdDisplay.DataSource = Customers
End Sub
End Class
Now run the application and look how it works.
The main objective of this application is to provide the knowlege of how to use the objects directly as a datasource.
The ability to work with your own business entity classes instead of DataTables can be beneficial in many situations, such as in ntier systems that require the user interface to be completely ignorant of the type and structure of the underlying data stores for a given system. In such a situation, the presentation layer can retrieve a set of objects from a middle tier and bind those objects directly to the user interface.
Certainly object data sources are not appropriate for all applications, but in many situations they are an extremely powerful and useful option.
And Visual Studio 2005 makes data binding with objects amazingly easy.
References:
Introducing Microsoft Visual Basic 2005 for Developers
Microsoft Press
Read more!