⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nullable.vb

📁 wrox出版社的另一套经典的VB2005数据库编程学习书籍,收集了书中源码,郑重推荐,电子书,电子书下载
💻 VB
📖 第 1 页 / 共 2 页
字号:
                                End If
                            Case 8
                                clsPrivate.ShipName = .GetString(intCtr)
                            Case 9
                                clsPrivate.ShipAddress = .GetString(intCtr)
                            Case 10
                                clsPrivate.ShipCity = .GetString(intCtr)
                            Case 11
                                If .GetValue(intCtr) Is Convert.DBNull Then
                                    clsPrivate.ShipRegion = Nothing
                                Else
                                    clsPrivate.ShipRegion = .GetString(intCtr)
                                End If
                            Case 12
                                If .GetValue(intCtr) Is Convert.DBNull Then
                                    clsPrivate.ShipPostalCode = Nothing
                                Else
                                    clsPrivate.ShipPostalCode = .GetString(intCtr)
                                End If
                            Case 13
                                clsPrivate.ShipCountry = .GetString(intCtr)
                        End Select
                    Next intCtr

                    'Test for nullable values
                    If clsPrivate.ShippedDate.HasValue Then
                        intValues += 1
                    Else
                        intNulls += 1
                    End If
                    If clsPrivate.ShipRegion IsNot Nothing Then
                        intValues += 1
                    Else
                        intNulls += 1
                    End If
                    If clsPrivate.ShipPostalCode IsNot Nothing Then
                        intValues += 1
                    Else
                        intNulls += 1
                    End If
                    'Add 10 values always present
                    intValues += 10
                End While
                .Close()
            End With
            cnnNwind.Close()
            txtValues.Text = intValues.ToString
            txtNulls.Text = intNulls.ToString
        Catch excRead As Exception
            MsgBox(excRead.Message + excRead.StackTrace)
        End Try
    End Sub

    Private Sub TestNormalClass()
        txtValues.Text = ""
        txtNulls.Text = ""
        Application.DoEvents()
        Dim strConn As String = "Server=localhost;Integrated Security=True;Database=Northwind"
        cnnNwind = New SqlConnection(strConn)
        Try
            Dim cmdOrders As SqlCommand = cnnNwind.CreateCommand
            With cmdOrders
                .CommandType = CommandType.Text
                .CommandText = "SELECT * FROM Orders"
            End With
            cnnNwind.Open()
            Dim drOrders As SqlDataReader = cmdOrders.ExecuteReader()
            Dim intCtr As Integer = 0
            intValues = 0
            intNulls = 0
            With drOrders
                While .Read
                    For intCtr = 0 To .FieldCount - 1
                        Select Case intCtr
                            Case 0
                                clsNormal.OrderID = .GetInt32(intCtr)
                            Case 1
                                clsNormal.CustomerID = .GetString(intCtr)
                            Case 2
                                clsNormal.EmployeeID = .GetInt32(intCtr)
                            Case 3
                                clsNormal.OrderDate = .GetDateTime(intCtr)
                            Case 4
                                If .GetValue(intCtr) Is Convert.DBNull Then
                                    clsNormal.RequiredDate = Nothing
                                Else
                                    clsNormal.RequiredDate = .GetDateTime(intCtr)
                                End If
                            Case 5
                                If .GetValue(intCtr) Is Convert.DBNull Then
                                    clsNormal.ShippedDate = Nothing
                                Else
                                    clsNormal.ShippedDate = .GetDateTime(intCtr)
                                End If
                            Case 6
                                If .GetValue(intCtr) Is Convert.DBNull Then
                                    clsNormal.ShipVia = Nothing
                                Else
                                    clsNormal.ShipVia = .GetInt32(intCtr)
                                End If
                            Case 7
                                If .GetValue(intCtr) Is Convert.DBNull Then
                                    clsNormal.Freight = Nothing
                                Else
                                    clsNormal.Freight = .GetDecimal(intCtr)
                                End If
                            Case 8
                                clsNormal.ShipName = .GetString(intCtr)
                            Case 9
                                clsNormal.ShipAddress = .GetString(intCtr)
                            Case 10
                                clsNormal.ShipCity = .GetString(intCtr)
                            Case 11
                                If .GetValue(intCtr) Is Convert.DBNull Then
                                    clsNormal.ShipRegion = Nothing
                                Else
                                    clsNormal.ShipRegion = .GetString(intCtr)
                                End If
                            Case 12
                                If .GetValue(intCtr) Is Convert.DBNull Then
                                    clsNormal.ShipPostalCode = Nothing
                                Else
                                    clsNormal.ShipPostalCode = .GetString(intCtr)
                                End If
                            Case 13
                                clsNormal.ShipCountry = .GetString(intCtr)
                        End Select
                    Next intCtr

                    'Test for values that have null values
                    If clsNormal.ShippedDate = Nothing Then
                        intNulls += 1
                    Else
                        intValues += 1
                    End If
                    If clsNormal.ShipRegion Is Nothing Then
                        intNulls += 1
                    Else
                        intValues += 1
                    End If
                    If clsNormal.ShipPostalCode Is Nothing Then
                        intNulls += 1
                    Else
                        intValues += 1
                    End If
                    'Add 10 values always present
                    intValues += 10
                End While
                .Close()
            End With
            cnnNwind.Close()
            txtValues.Text = intValues.ToString
            txtNulls.Text = intNulls.ToString
        Catch excRead As Exception
            MsgBox(excRead.Message + excRead.StackTrace)
        End Try
    End Sub

    Private Sub btnNormal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNormal.Click
        TestNormalClass()
    End Sub

    Private Sub btnPublic_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPublic.Click
        TestPublicClass()
    End Sub

    Private Sub btnPrivate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrivate.Click
        TestPrivateClass()
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -