I wrote an application to convert tables from SQL Server 2005 to classes for use in VB.Net programs. Although I agree with SH in that you should use the Entity Framework instead, which would surely be far superior, I'll be willing to provide my tool as its far simpler to learn and apply than the Entity Framework. Here is an example of a class generated by my tool:-
vbnet Code:
  1. '
  2. Imports System.Data
  3. Imports System.Data.SqlClient
  4. Imports System.Reflection
  5. Imports System.Text
  6. Imports System.ComponentModel
  7. Imports System.Collections.ObjectModel
  8. Public Class STItemsRow
  9.     Inherits STDataRowBase
  10.  
  11.     Private Shared gshr_lstDbFields As IList(Of DatabaseField)
  12.     Private _ItemID As Integer
  13.     Private _ItemCode As String
  14.     Private _Description As String
  15.     Private _Quantity As Integer
  16.     Private _CostPrice As Decimal
  17.     Private _SellPrice As Decimal
  18.     Private _Taxable As Boolean
  19.  
  20. Protected Overrides Function GetDatabaseFields() As List(Of DatabaseField)
  21.     If gshr_lstDbFields IsNot Nothing Then Return gshr_lstDbFields
  22.     Dim lst As New List(Of DatabaseField)
  23.     lst.Add(New DatabaseField("ItemID", True, True, False, SqlDbType.Int))
  24.     lst.Add(New DatabaseField("ItemCode", False, False, False, SqlDbType.VarChar))
  25.     lst.Add(New DatabaseField("Description", False, False, False, SqlDbType.VarChar))
  26.     lst.Add(New DatabaseField("Quantity", False, False, False, SqlDbType.Int))
  27.     lst.Add(New DatabaseField("CostPrice", False, False, False, SqlDbType.Decimal))
  28.     lst.Add(New DatabaseField("SellPrice", False, False, False, SqlDbType.Decimal))
  29.     lst.Add(New DatabaseField("Taxable", False, False, False, SqlDbType.Bit))
  30.     gshr_lstDbFields = lst
  31.     Return lst
  32. End Function
  33.     Public Property ItemID() As Integer
  34.         Get
  35.             Return _ItemID
  36.         End Get
  37.         Set(ByVal value As Integer)
  38.             OnPropertyChanging(New PropertyChangingEventArgs("ItemID"))
  39.             _ItemID = value
  40.             OnPropertyChanged(New PropertyChangedEventArgs("ItemID"))
  41.         End Set
  42.     End Property
  43.     Public Property ItemCode() As String
  44.         Get
  45.             Return _ItemCode
  46.         End Get
  47.         Set(ByVal value As String)
  48.             OnPropertyChanging(New PropertyChangingEventArgs("ItemCode"))
  49.             _ItemCode = value
  50.             OnPropertyChanged(New PropertyChangedEventArgs("ItemCode"))
  51.         End Set
  52.     End Property
  53.     Public Property Description() As String
  54.         Get
  55.             Return _Description
  56.         End Get
  57.         Set(ByVal value As String)
  58.             OnPropertyChanging(New PropertyChangingEventArgs("Description"))
  59.             _Description = value
  60.             OnPropertyChanged(New PropertyChangedEventArgs("Description"))
  61.         End Set
  62.     End Property
  63.     Public Property Quantity() As Integer
  64.         Get
  65.             Return _Quantity
  66.         End Get
  67.         Set(ByVal value As Integer)
  68.             OnPropertyChanging(New PropertyChangingEventArgs("Quantity"))
  69.             _Quantity = value
  70.             OnPropertyChanged(New PropertyChangedEventArgs("Quantity"))
  71.         End Set
  72.     End Property
  73.     Public Property CostPrice() As Decimal
  74.         Get
  75.             Return _CostPrice
  76.         End Get
  77.         Set(ByVal value As Decimal)
  78.             OnPropertyChanging(New PropertyChangingEventArgs("CostPrice"))
  79.             _CostPrice = value
  80.             OnPropertyChanged(New PropertyChangedEventArgs("CostPrice"))
  81.         End Set
  82.     End Property
  83.     Public Property SellPrice() As Decimal
  84.         Get
  85.             Return _SellPrice
  86.         End Get
  87.         Set(ByVal value As Decimal)
  88.             OnPropertyChanging(New PropertyChangingEventArgs("SellPrice"))
  89.             _SellPrice = value
  90.             OnPropertyChanged(New PropertyChangedEventArgs("SellPrice"))
  91.         End Set
  92.     End Property
  93.     Public Property Taxable() As Boolean
  94.         Get
  95.             Return _Taxable
  96.         End Get
  97.         Set(ByVal value As Boolean)
  98.             OnPropertyChanging(New PropertyChangingEventArgs("Taxable"))
  99.             _Taxable = value
  100.             OnPropertyChanged(New PropertyChangedEventArgs("Taxable"))
  101.         End Set
  102.     End Property
  103. Protected Overrides Function CollectDataFromFields() As IList(Of ClassFieldData)
  104.     Dim r As New List(Of ClassFieldData)
  105.  
  106.     r.Add(New ClassFieldData(MyBase.DatabaseField("ItemID"), Me.ItemID))
  107.     r.Add(New ClassFieldData(MyBase.DatabaseField("ItemCode"), Me.ItemCode, True, True))
  108.     r.Add(New ClassFieldData(MyBase.DatabaseField("Description"), Me.Description, True, True))
  109.     r.Add(New ClassFieldData(MyBase.DatabaseField("Quantity"), Me.Quantity))
  110.     r.Add(New ClassFieldData(MyBase.DatabaseField("CostPrice"), Me.CostPrice))
  111.     r.Add(New ClassFieldData(MyBase.DatabaseField("SellPrice"), Me.SellPrice))
  112.     r.Add(New ClassFieldData(MyBase.DatabaseField("Taxable"), Me.Taxable))
  113.     Return r
  114. End Function
  115. Public Overrides Sub FetchIntoFields(ByVal row As System.Data.DataRow)
  116.     If TryGetColumnData(VBDataTypes.VBInteger, row, "ItemID", Me.ItemID) = False Then ThrowColumnNotExists("ItemID")
  117.     If TryGetColumnData(VBDataTypes.VBString, row, "ItemCode", Me.ItemCode) = False Then ThrowColumnNotExists("ItemCode")
  118.     If TryGetColumnData(VBDataTypes.VBString, row, "Description", Me.Description) = False Then ThrowColumnNotExists("Description")
  119.     If TryGetColumnData(VBDataTypes.VBInteger, row, "Quantity", Me.Quantity) = False Then ThrowColumnNotExists("Quantity")
  120.     If TryGetColumnData(VBDataTypes.VBDecimal, row, "CostPrice", Me.CostPrice) = False Then ThrowColumnNotExists("CostPrice")
  121.     If TryGetColumnData(VBDataTypes.VBDecimal, row, "SellPrice", Me.SellPrice) = False Then ThrowColumnNotExists("SellPrice")
  122.     If TryGetColumnData(VBDataTypes.VBBool, row, "Taxable", Me.Taxable) = False Then ThrowColumnNotExists("Taxable")
  123. End Sub
  124. Protected Overrides Sub SetIdentityFieldValue(ByVal IdentityValue As Long)
  125.     Me.ItemID = IdentityValue
  126. End Sub
  127. End Class
  128. Public Class STItemsRowCollection
  129.     Inherits STDataRowCollection(Of STItemsRow)
  130.  
  131.     Public Sub New()
  132.         SetTable("Items")
  133.     End Sub
  134.     Public Enum Fields
  135.         ItemID
  136.         ItemCode
  137.         Description
  138.         Quantity
  139.         CostPrice
  140.         SellPrice
  141.         Taxable
  142.     End Enum
  143.  
  144.     Public Sub AddWhereClauseCondition(ByVal field As Fields, ByVal SqlOperator As enumSqlOperators, ByVal value As Object)
  145.         If field = Fields.ItemID Then InternalAddWhereClauseCondition(New WhereClauseData("ItemID", value, SqlOperator))
  146.         If field = Fields.ItemCode Then InternalAddWhereClauseCondition(New WhereClauseData("ItemCode", value, SqlOperator))
  147.         If field = Fields.Description Then InternalAddWhereClauseCondition(New WhereClauseData("Description", value, SqlOperator))
  148.         If field = Fields.Quantity Then InternalAddWhereClauseCondition(New WhereClauseData("Quantity", value, SqlOperator))
  149.         If field = Fields.CostPrice Then InternalAddWhereClauseCondition(New WhereClauseData("CostPrice", value, SqlOperator))
  150.         If field = Fields.SellPrice Then InternalAddWhereClauseCondition(New WhereClauseData("SellPrice", value, SqlOperator))
  151.         If field = Fields.Taxable Then InternalAddWhereClauseCondition(New WhereClauseData("Taxable", value, SqlOperator))
  152.     End Sub
  153. End Class