📄 dsbook.vb
字号:
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 BookDataTable = CType(MyBase.Clone,BookDataTable)
cln.InitVars
Return cln
End Function
Protected Overrides Function CreateInstance() As DataTable
Return New BookDataTable
End Function
Friend Sub InitVars()
Me.column图书编号 = Me.Columns("图书编号")
Me.column书名 = Me.Columns("书名")
Me.column作者 = Me.Columns("作者")
Me.column出版社 = Me.Columns("出版社")
Me.column单价 = Me.Columns("单价")
Me.column页码 = Me.Columns("页码")
Me.column出版日期 = Me.Columns("出版日期")
End Sub
Private Sub InitClass()
Me.column图书编号 = New DataColumn("图书编号", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.column图书编号)
Me.column书名 = New DataColumn("书名", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.column书名)
Me.column作者 = New DataColumn("作者", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.column作者)
Me.column出版社 = New DataColumn("出版社", GetType(System.String), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.column出版社)
Me.column单价 = New DataColumn("单价", GetType(System.Decimal), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.column单价)
Me.column页码 = New DataColumn("页码", GetType(System.Int16), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.column页码)
Me.column出版日期 = New DataColumn("出版日期", GetType(System.DateTime), Nothing, System.Data.MappingType.Element)
Me.Columns.Add(Me.column出版日期)
Me.column图书编号.AllowDBNull = false
Me.column书名.AllowDBNull = false
End Sub
Public Function NewBookRow() As BookRow
Return CType(Me.NewRow,BookRow)
End Function
Protected Overrides Function NewRowFromBuilder(ByVal builder As DataRowBuilder) As DataRow
Return New BookRow(builder)
End Function
Protected Overrides Function GetRowType() As System.Type
Return GetType(BookRow)
End Function
Protected Overrides Sub OnRowChanged(ByVal e As DataRowChangeEventArgs)
MyBase.OnRowChanged(e)
If (Not (Me.BookRowChangedEvent) Is Nothing) Then
RaiseEvent BookRowChanged(Me, New BookRowChangeEvent(CType(e.Row,BookRow), e.Action))
End If
End Sub
Protected Overrides Sub OnRowChanging(ByVal e As DataRowChangeEventArgs)
MyBase.OnRowChanging(e)
If (Not (Me.BookRowChangingEvent) Is Nothing) Then
RaiseEvent BookRowChanging(Me, New BookRowChangeEvent(CType(e.Row,BookRow), e.Action))
End If
End Sub
Protected Overrides Sub OnRowDeleted(ByVal e As DataRowChangeEventArgs)
MyBase.OnRowDeleted(e)
If (Not (Me.BookRowDeletedEvent) Is Nothing) Then
RaiseEvent BookRowDeleted(Me, New BookRowChangeEvent(CType(e.Row,BookRow), e.Action))
End If
End Sub
Protected Overrides Sub OnRowDeleting(ByVal e As DataRowChangeEventArgs)
MyBase.OnRowDeleting(e)
If (Not (Me.BookRowDeletingEvent) Is Nothing) Then
RaiseEvent BookRowDeleting(Me, New BookRowChangeEvent(CType(e.Row,BookRow), e.Action))
End If
End Sub
Public Sub RemoveBookRow(ByVal row As BookRow)
Me.Rows.Remove(row)
End Sub
End Class
<System.Diagnostics.DebuggerStepThrough()> _
Public Class BookRow
Inherits DataRow
Private tableBook As BookDataTable
Friend Sub New(ByVal rb As DataRowBuilder)
MyBase.New(rb)
Me.tableBook = CType(Me.Table,BookDataTable)
End Sub
Public Property 图书编号 As String
Get
Return CType(Me(Me.tableBook.图书编号Column),String)
End Get
Set
Me(Me.tableBook.图书编号Column) = value
End Set
End Property
Public Property 书名 As String
Get
Return CType(Me(Me.tableBook.书名Column),String)
End Get
Set
Me(Me.tableBook.书名Column) = value
End Set
End Property
Public Property 作者 As String
Get
Try
Return CType(Me(Me.tableBook.作者Column),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableBook.作者Column) = value
End Set
End Property
Public Property 出版社 As String
Get
Try
Return CType(Me(Me.tableBook.出版社Column),String)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableBook.出版社Column) = value
End Set
End Property
Public Property 单价 As Decimal
Get
Try
Return CType(Me(Me.tableBook.单价Column),Decimal)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableBook.单价Column) = value
End Set
End Property
Public Property 页码 As Short
Get
Try
Return CType(Me(Me.tableBook.页码Column),Short)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableBook.页码Column) = value
End Set
End Property
Public Property 出版日期 As Date
Get
Try
Return CType(Me(Me.tableBook.出版日期Column),Date)
Catch e As InvalidCastException
Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
End Try
End Get
Set
Me(Me.tableBook.出版日期Column) = value
End Set
End Property
Public Function Is作者Null() As Boolean
Return Me.IsNull(Me.tableBook.作者Column)
End Function
Public Sub Set作者Null()
Me(Me.tableBook.作者Column) = System.Convert.DBNull
End Sub
Public Function Is出版社Null() As Boolean
Return Me.IsNull(Me.tableBook.出版社Column)
End Function
Public Sub Set出版社Null()
Me(Me.tableBook.出版社Column) = System.Convert.DBNull
End Sub
Public Function Is单价Null() As Boolean
Return Me.IsNull(Me.tableBook.单价Column)
End Function
Public Sub Set单价Null()
Me(Me.tableBook.单价Column) = System.Convert.DBNull
End Sub
Public Function Is页码Null() As Boolean
Return Me.IsNull(Me.tableBook.页码Column)
End Function
Public Sub Set页码Null()
Me(Me.tableBook.页码Column) = System.Convert.DBNull
End Sub
Public Function Is出版日期Null() As Boolean
Return Me.IsNull(Me.tableBook.出版日期Column)
End Function
Public Sub Set出版日期Null()
Me(Me.tableBook.出版日期Column) = System.Convert.DBNull
End Sub
End Class
<System.Diagnostics.DebuggerStepThrough()> _
Public Class BookRowChangeEvent
Inherits EventArgs
Private eventRow As BookRow
Private eventAction As DataRowAction
Public Sub New(ByVal row As BookRow, ByVal action As DataRowAction)
MyBase.New
Me.eventRow = row
Me.eventAction = action
End Sub
Public ReadOnly Property Row As BookRow
Get
Return Me.eventRow
End Get
End Property
Public ReadOnly Property Action As DataRowAction
Get
Return Me.eventAction
End Get
End Property
End Class
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -