■94857 / inTopicNo.3) |
Re[1]: DBNullは、どのよう場合に |
□投稿者/ 魔界の仮面弁士 (2727回)-(2020/05/27(Wed) 09:39:20)
|
■No94855 (困った人 さん) に返信 > そのなかで文字列でDBNullでエラーが発生しました。 文字列へ DBNull から変換している、ということでしょうか。
> dbnull' から型 'string' への変換は無効です。 「型 'DBNull' から型 'String' への変換は無効です。」の InvalidCastException ですね。 Option Strict が Off の状態で開発されていませんか?
> これは、IsDBNullでは、例外が発生してtry catch ex Exceptionでしか IsDBNull 関数 … Microsoft.VisualBasic.Information.IsDBNull Convert.IsDBNull メソッド … System.Convert.IsDBNull
を呼び出した時点で例外になってしまい、その例外の内容が InvalidCastException である、と。
だとすれば、これらが「String への変換」を行うはずはないので、 質問内容にまだ記載されていない部分に問題があるのだと推察します。
' ' VB の IsDBNull 関数が行う処理 ' If Object型引数 Is Nothing Then Return False Return TypeOf Object型引数 Is System.DBNull
' ' Convert.IsDBNull メソッドが行う処理 ' https://referencesource.microsoft.com/#mscorlib/system/convert.cs,9bac5ae18d21a70a ' If Object型引数 Is System.DBNull.Value Then Return True Dim convertible = TryCast(Object型引数, System.IConvertible) Retrun If(convertible Is Nothing, False, convertible.GetTypeCode() = System.TypeCode.DBNull)
> Visual Basic2010 でソフトを組んでまして > Microsof AccessのDB機能を使用してで結果を保存したり表示したりしています。 随分と古いバージョンを使い続けておられますね。 Access データへのアクセス手段は何を使われていますか?
(1) Microsoft DAO 3.6 Object Library (2) Microsoft ActiveX Data Objects Library (2.0〜6.1) (3) Microsoft ActiveX Data Objects Recordsets Library (2.8 / 6.1) (4) ADO.NET / System.Data.OldDb 名前空間 (5) ADO.NET / System.Data.Odbc 名前空間 (6) 上記以外 (ODBC, RDO, …)
上記(2)〜(4) の場合は、使用している OLE DB Provider も教えてください。 Microsoft JET OLEDB 3.51 Provider Microsoft JET OLEDB 4.0 Provider Microsoft ACE OLEDB 12.0 Provider など。
|
|