study.vb
来自「Source code for VB.NET book - Chapter 6」· VB 代码 · 共 1,504 行 · 第 1/4 页
VB
1,504 行
ByVal Notes As String, _
ByVal ReportsTo As Integer, _
ByVal PhotoPath As String) As EmployeesRow
Dim rowEmployeesRow As EmployeesRow = CType(Me.NewRow,EmployeesRow)
rowEmployeesRow.ItemArray = New Object() {Nothing, LastName, FirstName, Title, TitleOfCourtesy, BirthDate, HireDate, Address, City, _Region, PostalCode, Country, HomePhone, Extension, Photo, Notes, ReportsTo, PhotoPath}
Me.Rows.Add(rowEmployeesRow)
Return rowEmployeesRow
End Function
Public Function FindByEmployeeID(ByVal EmployeeID As Integer) As EmployeesRow
Return CType(Me.Rows.Find(New Object() {EmployeeID}),EmployeesRow)
End Function
Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
Return Me.Rows.GetEnumerator
End Function
Public Overrides Function Clone() As DataTable
Dim cln As EmployeesDataTable = CType(MyBase.Clone,EmployeesDataTable)
cln.InitVars
Return cln
End Function
Protected Overrides Function CreateInstance() As DataTable
Return New EmployeesDataTable
End Function
Friend Sub InitVars()
Me.columnEmployeeID = Me.Columns("EmployeeID")
Me.columnLastName = Me.Columns("LastName")
Me.columnFirstName = Me.Columns("FirstName")
Me.columnTitle = Me.Columns("Title")
Me.columnTitleOfCourtesy = Me.Columns("TitleOfCourtesy")
Me.columnBirthDate = Me.Columns("BirthDate")
Me.columnHireDate = Me.Columns("HireDate")
Me.columnAddress = Me.Columns("Address")
Me.columnCity = Me.Columns("City")
Me.column_Region = Me.Columns("Region")
Me.columnPostalCode = Me.Columns("PostalCode")
Me.columnCountry = Me.Columns("Country")
Me.columnHomePhone = Me.Columns("HomePhone")
Me.columnExtension = Me.Columns("Extension")
Me.columnPhoto = Me.Columns("Photo")
Me.columnNotes = Me.Columns("Notes")
Me.columnReportsTo = Me.Columns("ReportsTo")
Me.columnPhotoPath = Me.Columns("PhotoPath")
End Sub
Private Sub InitClass()
Me.columnEmployeeID = New DataColumn("EmployeeID", GetType(System.Int32), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnEmployeeID)
Me.columnLastName = New DataColumn("LastName", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnLastName)
Me.columnFirstName = New DataColumn("FirstName", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnFirstName)
Me.columnTitle = New DataColumn("Title", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnTitle)
Me.columnTitleOfCourtesy = New DataColumn("TitleOfCourtesy", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnTitleOfCourtesy)
Me.columnBirthDate = New DataColumn("BirthDate", GetType(System.DateTime), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnBirthDate)
Me.columnHireDate = New DataColumn("HireDate", GetType(System.DateTime), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnHireDate)
Me.columnAddress = New DataColumn("Address", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnAddress)
Me.columnCity = New DataColumn("City", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnCity)
Me.column_Region = New DataColumn("Region", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.column_Region)
Me.columnPostalCode = New DataColumn("PostalCode", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnPostalCode)
Me.columnCountry = New DataColumn("Country", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnCountry)
Me.columnHomePhone = New DataColumn("HomePhone", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnHomePhone)
Me.columnExtension = New DataColumn("Extension", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnExtension)
Me.columnPhoto = New DataColumn("Photo", GetType(System.Byte()), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnPhoto)
Me.columnNotes = New DataColumn("Notes", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnNotes)
Me.columnReportsTo = New DataColumn("ReportsTo", GetType(System.Int32), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnReportsTo)
Me.columnPhotoPath = New DataColumn("PhotoPath", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.columnPhotoPath)
Me.Constraints.Add(New UniqueConstraint("Constraint1", New DataColumn() {Me.columnEmployeeID}, true))
Me.columnEmployeeID.AutoIncrement = true
Me.columnEmployeeID.AllowDBNull = false
Me.columnEmployeeID.ReadOnly = true
Me.columnEmployeeID.Unique = true
Me.columnLastName.AllowDBNull = false
Me.columnFirstName.AllowDBNull = false
End Sub
Public Function NewEmployeesRow() As EmployeesRow
Return CType(Me.NewRow,EmployeesRow)
End Function
Protected Overrides Function NewRowFromBuilder(ByVal builder As DataRowBuilder) As DataRow
Return New EmployeesRow(builder)
End Function
Protected Overrides Function GetRowType() As System.Type
Return GetType(EmployeesRow)
End Function
Protected Overrides Sub OnRowChanged(ByVal e As DataRowChangeEventArgs)
MyBase.OnRowChanged(e)
If (Not (Me.EmployeesRowChangedEvent) Is Nothing) Then
RaiseEvent EmployeesRowChanged(Me, New EmployeesRowChangeEvent(CType(e.Row,EmployeesRow), e.Action))
End If
End Sub
Protected Overrides Sub OnRowChanging(ByVal e As DataRowChangeEventArgs)
MyBase.OnRowChanging(e)
If (Not (Me.EmployeesRowChangingEvent) Is Nothing) Then
RaiseEvent EmployeesRowChanging(Me, New EmployeesRowChangeEvent(CType(e.Row,EmployeesRow), e.Action))
End If
End Sub
Protected Overrides Sub OnRowDeleted(ByVal e As DataRowChangeEventArgs)
MyBase.OnRowDeleted(e)
If (Not (Me.EmployeesRowDeletedEvent) Is Nothing) Then
RaiseEvent EmployeesRowDeleted(Me, New EmployeesRowChangeEvent(CType(e.Row,EmployeesRow), e.Action))
End If
End Sub
Protected Overrides Sub OnRowDeleting(ByVal e As DataRowChangeEventArgs)
MyBase.OnRowDeleting(e)
If (Not (Me.EmployeesRowDeletingEvent) Is Nothing) Then
RaiseEvent EmployeesRowDeleting(Me, New EmployeesRowChangeEvent(CType(e.Row,EmployeesRow), e.Action))
End If
End Sub
Public Sub RemoveEmployeesRow(ByVal row As EmployeesRow)
Me.Rows.Remove(row)
End Sub
End Class
<System.Diagnostics.DebuggerStepThrough()> _
Public Class EmployeesRow
Inherits DataRow
Private tableEmployees As EmployeesDataTable
Friend Sub New(ByVal rb As DataRowBuilder)
MyBase.New(rb)
Me.tableEmployees = CType(Me.Table,EmployeesDataTable)
End Sub
Public Property EmployeeID As Integer
Get
Return CType(Me(Me.tableEmployees.EmployeeIDColumn),Integer)
End Get
Set
Me(Me.tableEmployees.EmployeeIDColumn) = value
End Set
End Property
Public Property LastName As String
Get
Return CType(Me(Me.tableEmployees.LastNameColumn),String)
End Get
Set
Me(Me.tableEmployees.LastNameColumn) = value
End Set
End Property
Public Property FirstName As String
Get
Return CType(Me(Me.tableEmployees.FirstNameColumn),String)
End Get
Set
Me(Me.tableEmployees.FirstNameColumn) = value
End Set
End Property
Public Property Title As String
Get
Try
Return CType(Me(Me.tableEmployees.TitleColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.TitleColumn) = value
End Set
End Property
Public Property TitleOfCourtesy As String
Get
Try
Return CType(Me(Me.tableEmployees.TitleOfCourtesyColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.TitleOfCourtesyColumn) = value
End Set
End Property
Public Property BirthDate As Date
Get
Try
Return CType(Me(Me.tableEmployees.BirthDateColumn),Date)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.BirthDateColumn) = value
End Set
End Property
Public Property HireDate As Date
Get
Try
Return CType(Me(Me.tableEmployees.HireDateColumn),Date)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.HireDateColumn) = value
End Set
End Property
Public Property Address As String
Get
Try
Return CType(Me(Me.tableEmployees.AddressColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.AddressColumn) = value
End Set
End Property
Public Property City As String
Get
Try
Return CType(Me(Me.tableEmployees.CityColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.CityColumn) = value
End Set
End Property
Public Property _Region As String
Get
Try
Return CType(Me(Me.tableEmployees._RegionColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees._RegionColumn) = value
End Set
End Property
Public Property PostalCode As String
Get
Try
Return CType(Me(Me.tableEmployees.PostalCodeColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.PostalCodeColumn) = value
End Set
End Property
Public Property Country As String
Get
Try
Return CType(Me(Me.tableEmployees.CountryColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.CountryColumn) = value
End Set
End Property
Public Property HomePhone As String
Get
Try
Return CType(Me(Me.tableEmployees.HomePhoneColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.HomePhoneColumn) = value
End Set
End Property
Public Property Extension As String
Get
Try
Return CType(Me(Me.tableEmployees.ExtensionColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.ExtensionColumn) = value
End Set
End Property
Public Property Photo As Byte()
Get
Try
Return CType(Me(Me.tableEmployees.PhotoColumn),Byte())
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.PhotoColumn) = value
End Set
End Property
Public Property Notes As String
Get
Try
Return CType(Me(Me.tableEmployees.NotesColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.NotesColumn) = value
End Set
End Property
Public Property ReportsTo As Integer
Get
Try
Return CType(Me(Me.tableEmployees.ReportsToColumn),Integer)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.ReportsToColumn) = value
End Set
End Property
Public Property PhotoPath As String
Get
Try
Return CType(Me(Me.tableEmployees.PhotoPathColumn),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableEmployees.PhotoPathColumn) = value
End Set
End Property
Public Function IsTitleNull() As Boolean
Return Me.IsNull(Me.tableEmployees.TitleColumn)
End Function
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?