私は高低を無駄に検索しました。これは私のプロジェクトを完了する前の最後のステップなので、助けてください! 前もって感謝します!
ユーザーがグリッドビューでエントリを選択すると、選択した行のデータが取り込まれたフォームにリダイレクトされます (したがって、グリッドビューはよりユーザーフレンドリーな方法で編集可能になります)。DB は Null 値を受け入れます。対応するテキスト ボックスに Null 日付値を空白 (または " ") として表示したいと思います。代わりに、次のエラーが表示されます。
タイプ 'DBNull' からタイプ 'Date' への変換は無効です。
これが私のコードです:
'preceded by connection code
Dim sqlcmd As String = "SELECT * from Master WHERE RecNum = @recnum"
'Dim sqlCmd As New OleDb.OleDbCommand("SELECT * from Master WHERE RecNum = @recnum", connection)
Dim FileCommand3 As New OleDb.OleDbCommand(sqlcmd, connection)
FileCommand3.Parameters.AddWithValue("@recnum", user)
Dim Reader3 As OleDb.OleDbDataReader = FileCommand3.ExecuteReader()
If Reader3.Read Then
stock = myCStr(Reader3("StockNum"))
make = myCStr(Reader3("Make"))
color = myCStr(Reader3("Color"))
stockin = myCStr(Reader3("Stockin"))
ucistart = myCStr(Reader3("UCIStartDate"))
repairs = Reader3("Repairs")
tires = Reader3("tiresneeded")
onlot = Reader3("onlot")
sold = Reader3("sold")
year = myCStr(Reader3("year"))
model = myCStr(Reader3("model"))
location = Reader3("location")
srvcRO = myCStr(Reader3("svcROnum"))
ucicompldate = myCStr(Reader3("uciestcompletedate"))
collRO = myCStr(Reader3("collisionROnum"))
other = myCStr(Reader3("other"))
offprop = Reader3("offProperty")
detail = (Reader3("detail")
End If
connection.Close()
SoldCheckBX.Checked = sold
DetailTXTbox.Text = detail
'etc, etc
End Sub
関数 mycstr を使用して dbnull to string エラーを修正しましたが、「日付」データ型に適応するのは簡単ではないようです
Function myCStr(ByVal test As Object) As String
If isdbnull(test) Then
Return ("")
Else
Return CStr(test)
End If
End Function