sql >> データベース >  >> RDS >> Sqlserver

DBNullに対処するための最良の方法は何ですか

    null許容型は適切ですが、そもそもnull許容型ではない型にのみ適用されます。

    タイプを「null許容」にするには、タイプに疑問符を追加します。例:

    int? value = 5;
    

    また、「as」を使用することをお勧めします キャストの代わりに「キーワード」。null許容型には「as」キーワードのみを使用できるため、すでにnull許容型(文字列など)のものをキャストするか、上記のようにnull許容型を使用していることを確認してください。理由は

    1. 型がnull許容の場合、「as "キーワードはnullを返します 値がDBNullの場合 。
    2. 特定の場合に限りますが、キャストよりもわずかに高速です。これだけでは、asを使用するのに十分な理由にはなりません。 、しかし上記の理由と相まって、それは便利です。

    このようなことをお勧めします

    DataRow row = ds.Tables[0].Rows[0];
    string value = row as string;
    

    上記の場合、row DBNullとして返されます 、次にvalue nullになります 例外をスローする代わりに。 DBクエリが返される列/タイプを変更する場合は、 asを使用することに注意してください。 コードが黙って失敗する原因になります 値を単純にするnull 誤ったデータが返されたときに適切な例外をスローするのではなく、コードベースの進化に合わせてデータの整合性を確保するために、他の方法でクエリを検証するためのテストを実施することをお勧めします。



    1. 役割を設定するときにSQLalchemyが変更をコミットしない

    2. SQLServerからデータベースのリストを取得する

    3. ON条件なしでmysqlJOINを使用するにはどうすればよいですか?

    4. cPanelでMySQLデータベースを作成する方法