Click here to Skip to main content
Click here to Skip to main content
Go to top

NHibernate Simple VB.Net Example Tutorial

, 22 Jul 2008
Rate this:
Please Sign up or sign in to vote.
NHibernate using VB.Net

Introduction

This article will help you create a simple VB.Net project using NHibernate

Background Information

Files Required:
1.) Download NHibernate1.2.1.GA.msi and install it in your computer.
This installation will contain nhibernate.dll files for .net framework 1.1 and 2.0 .
2.) Create a new project (Web or console or windows application)
3.) Add Reference Nhibernate.dll and NHibernate.Mapping.Attributes
4.) Create a Project with the name EmployeeManagement (or) anything you wish

Using the code

Employee.VB :

 // Create a Employee class with corresponding get and set methods

Namespace Domain
    Public Class Employee
        Private _EmpID As Integer
        Private _firstname As String
        Private _lastname As String
        Private _age As String
        Private _address As String
        Public Property EmpID() As Integer
            Get
                Return _EmpID
            End Get
            Set(ByVal Value As Integer)
                _EmpID = Value
            End Set
        End Property
        Public Property firstname() As String
            Get
                Return _firstname
            End Get
            Set(ByVal Value As String)
                _firstname = Value
            End Set
        End Property
        Public Property lastname() As String
            Get
                Return _lastname
            End Get
            Set(ByVal Value As String)
                _lastname = Value
            End Set
        End Property
        Public Property age() As Integer
            Get
                Return _age
            End Get
            Set(ByVal Value As Integer)
                _age = Value
            End Set
        End Property
        Public Property address() As String
            Get
                Return _address
            End Get
            Set(ByVal Value As String)
                _address = Value
            End Set
        End Property
    End Class
End Namespace            

Employee.hbm.xml: (Make sure you set the compile option as embedded Resource)

<?xml version="1.0"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true">
<class name="EmployeeManagement.Domain.Employee,EmployeeManagement" lazy="false">
    <id name="EmpID" type="integer" column="ID">
        <generator class="native" />
    </id>

    <property name="firstname" type="string" column="FirstName"/>
    <property name="lastname" type="string" column="LastName"/>
    <property name="age" type="integer" column="Age"/>
    <property name="address" type="string" column="Address"/>
</class>
</hibernate-mapping>            
        

Web.Config (Or) App.Config:

 <!--<span class="code-comment"> Copy this code into your web.config or App.Config just below <configuration> tag --></span>

<configSections>
        <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System,Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</configSections>

<nhibernate>
 <add key="hibernate.show_sql" value="false" />
 <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
 <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect" />
 <add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
 <add key="hibernate.connection.connection_string" value="************<Your dbconnectionstring>********************" />
</nhibernate>
            
        

DbSession.vb: (This class creates the session and takes care of saving the data to the database)

Imports System
Imports System.Reflection
Imports NHibernate
Imports NHibernate.Cfg

Namespace NhibernateDB
    Public Class DbSession
        Public Sub SaveEmployeeToDatabase(ByVal emp As Domain.Employee)
            Dim session As ISession
            Dim transaction As ITransaction
            Try
                session = OpenSession()
                transaction = session.BeginTransaction()
                session.Save(emp)
                transaction.Commit()
            Catch ex As Exception
                Throw ex
            Finally
                session.Close()
                transaction = Nothing
                session = Nothing
            End Try
        End Sub

        Public Function OpenSession() As ISession
            Dim myConfig As NHibernate.Cfg.Configuration = New NHibernate.Cfg.Configuration
            Try
                myConfig.AddAssembly("EmployeeManagement")
                Dim SessionFactory As ISessionFactory = myConfig.BuildSessionFactory()
                Return SessionFactory.OpenSession()
            Catch ex As Exception
                Throw ex
            End Try
        End Function
    End Class
End Namespace            


        

Button click event to invoke the save function

Dim empObj As New Domain.Employee
Dim dbObj As New NhibernateDB.DbSession

Try

empObj.firstname = firstname.Text
empObj.lastname = lastname.Text

If Not age.Text.Trim = "" Then
empObj.age = Convert.ToInt32(age.Text)
Else
empObj.age = 0
End If

empObj.address = address.Text

dbObj.SaveEmployeeToDatabase(empObj)

Catch ex As Exception
Throw ex
Finally
empObj = Nothing
dbObj = Nothing
End Try

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

questprogrammer
Software Developer
United States United States
No Biography provided

Comments and Discussions

 
QuestionHellooo PinmemberHGIS20-Jan-13 17:35 
GeneralDatasets and Nhibernate Pinmemberquestprogrammer23-Jul-08 9:19 
Can Nhibernate be used to read data to a DataSet ???

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.140916.1 | Last Updated 22 Jul 2008
Article Copyright 2008 by questprogrammer
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid