Properties and Object Oriented Database Development with VB.NET 2005 - Accessing the object properties from the form
(Page 3 of 4 )
Modifying the class as in the previous section would cause errors to be thrown in your form code. You need to modify the form code as follows to work with properties:
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Me.lblErrMsg.Text = ""
Try
Dim ep As New Emp
Dim objReturned As Emp
objReturned = ep.getEmployee(Me.txtEmpno.Text)
Me.txtDeptno.Text = objReturned.deptno
Me.txtEname.Text = objReturned.ename
Me.txtSal.Text = objReturned.sal
Catch ex As Exception
Me.lblErrMsg.Text = ex.Message
End Try
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Me.lblErrMsg.Text = ""
Try
Dim objParam As New Emp
With objParam
.deptno = Me.txtDeptno.Text
.empno = Me.txtEmpno.Text
.ename = Me.txtEname.Text
.sal = Me.txtSal.Text
End With
Dim ep As New Emp
ep.add(objParam)
Catch ex As Exception
Me.lblErrMsg.Text = ex.Message
End Try
End Sub
Developing read-only/write-only properties
There will be times when you need only read-only/write-only properties. The best example would be something like the following statement:
a = Me.ListBox1.Items.Count
If I try to write the same statement shown above as something like the following, it would give an error:
Me.ListBox1.Items.Count = a
That means we can only read from the property “Count,” but not assign any value to it, which is what is called a “read-only” property.
Let us now try to determine a read-only property called “EmployeeCount,” which returns the number of employees existing in the table. The code would be something like the following:
Public ReadOnly Property EmployeeCount() As Integer
Get
Dim cn As New SqlConnection("Data Source=.sql2k5;initial catalog=sample;user id=sa;password=eXpress2005")
Dim cmd As New SqlCommand("select count(*) from sample.dbo.emp", cn)
Try
Dim n As Integer
cmd.Connection.Open()
n = cmd.ExecuteScalar
Return n
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
If cmd.Connection.State = ConnectionState.Open Then
cmd.Connection.Close()
End If
cmd.Dispose()
cn.Dispose()
End Try
End Get
End Property
You can observe that the above property doesn’t have any “set” part and the property declaration is given with “readonly.” To use this property, I added a simple label called “lblNoOfEmployees” to the form and added the following code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
Dim ep As New Emp
Me.lblNoOfEmployees.Text = "No. of employees: " & ep.EmployeeCount
Catch ex As Exception
Me.lblErrMsg.Text = ex.Message
End Try
End Sub
Very similar to the above read-only property, we also have a write-only property. The write-only property is used only to assign a value, but not for retrieving a value. In the case of the write-only property, we will have only a “set” part without a “get” part and the declaration is given with “writeonly.”
Next: Using read-only properties to deal with error messages >>
More Visual Basic.NET Articles
More By Jagadish Chaterjee