SQLDataReader を使用して、null の可能性があるデータベースから値を取得しています。Null 文字列値を処理する方法を考え出しましたが、同じトリックを整数またはブール値で使用することはできません。
Using cmd As DbCommand = store.GetStoredProcCommand("RetrievePOCO")
store.AddInParameter(cmd, "ID", DbType.Int32, ID)
Using reader As IDataReader = store.ExecuteReader(cmd)
If reader.Read() = True Then
Dim newPOCO As New POCO()
With newPOCO
'If the source column is null TryCast will return nothing without throwing an error
.StatusXML = TryCast(reader.GetString(reader.GetOrdinal("StatusXML")), String)
'How can a null integer or boolean be set elegantly?
.AppType = TryCast(reader.GetInt32(reader.GetOrdinal("AppType")), System.Nullable(Of Integer))
.Archived = TryCast(reader.GetBoolean(reader.GetOrdinal("Archived")), Boolean)
では、null 整数またはブール値をエレガントに設定するにはどうすればよいでしょうか。C# で提案を見たことがありますが、VB に正しく変換されず、'TryCast オペランドは参照型である必要がありますが、整数ですか? 値型のコンパイラ エラーです。