📄 nullable.vb
字号:
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 + -