問題タブ [dbnull]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1994 参照

mysql - VB.NET2010およびMySql-怠惰な人々のためのDBNULLの処理

MySqlデータベースからのデータでクラスを初期化したい。一部のフィールドはnullになる可能性があります。

db内の最後の2つのフィールドがNULLである可能性があるため、そのフィールドでGetStringを呼び出すと例外が発生するとします。

各フィールドを取得する前に、NULLをテストするコードを確実に記述できます。

しかし、多くのフィールドがある場合、これは「ifs」の悪夢です。

この目的のために、私はIIf VB関数を書き直して、より型指定されたものにし、キャストを回避しました。

私が次のようなものを書くことができるように:

型指定されたIIfは他の場合にはうまく機能しますが、残念ながらこの場合は機能しません。これは、言語キーワードではなく通常の関数であるため、呼び出し中に各inpoutパラメーターが評価され、フィールドがNULLの場合は例外が発生します。 。

エレガントなif-lessソリューションを思いつくことができますか?

0 投票する
4 に答える
17232 参照

.net - DBNull を比較するには何を使用すればよいですか? DBNull.Value または ToString().IsNullOrEmpty() の使用

DBnullいずれかの方法を使用して、データ行の を確認できます。

どちらかを使用して

またはすることによって

どちらの場合も、同じ結果が得られます。

しかし、どちらが概念的に正しいアプローチですか。どちらがより少ないリソースを使用しますか

0 投票する
3 に答える
4510 参照

c# - C#?? null 合体演算子の質問

Class PersonプロパティのBirthdaynull 許容 DateTime として定義しましたか? では、次の例で null 合体演算子が機能しないのはなぜですか?

私が得たコンパイラ エラーは「演算子 '??' でした。タイプ「System.DateTime?」のオペランドには適用できません。および「System.DBNull」」

以下もコンパイルエラーになりました:

リファクタリングで推奨されているように (オブジェクト) にキャストを追加し、コンパイルしましたが、正しく動作せず、値は両方の場合で sqlserver db に null として格納されました。

誰かがここで何が起こっているのか説明できますか?

次の不器用なコードを使用する必要がありました。

0 投票する
4 に答える
5240 参照

c# - DBNullの簡潔な使用法?(三元?)

三項演算子にはタイプの混乱があるようです。これは他のSOスレッドで対処されていることは知っていますが、常にnull可能です。また、私の場合、私は本当にもっと良い方法を探しています。

使えるようになりたい

しかし、代わりに私はこれで立ち往生しています:

DBNullと文字列の間で変換が不可能なため、三項演算子は失敗します。Valueがオブジェクトであると考えると、それはばかげているように見えますが、コンパイラはそれを私にキックバックし、私は気にする必要があります。この質問のnull許容バージョンに対する答えは、nullを文字列にキャストしてそれで実行することです。ただし、DBNullを文字列にキャストすることはできないため、運がありません。

これを行うためのより簡潔な方法はありますか(ちなみに、nullablesを使用せずに)

ありがとう!

0 投票する
1 に答える
730 参照

winforms - DataGridViewComboBoxのnull値

コンボボックス列を持つWindowsフォームのDataGridViewがあります。コンボボックスの列は、LinqtoEntitiesクエリから入力されたデータソースにバインドされています。ユーザーがコンボボックスで「なし」を選択できるようにしたいと思います(基になるデータソースにNULLの値を割り当てます)。

どうすればこれを達成できますか?

0 投票する
4 に答える
17991 参照

c# - DBNull.Value の処理

グリッド コントロールに接続された DataTable を頻繁に処理する必要があります。カスタム更新では、常に DBNull.Value に関連する多くのコードが生成されるようです。ここで同様の質問を見ましたが、より良い答えがあるに違いないと思います:

DBNull に対処する最善の方法は何ですか?

私が見つけたのは、データベースの更新をメソッドにカプセル化する傾向があるため、DBNull.value を null 許容型に移動してから更新のために戻す以下のようなコードになります。

これはフローの単なる例であり、コードは機能していません。オブジェクトを渡したり、「型として」を使用して潜在的なキャストの問題を飲み込んだりして、DBUll を直接 null にできることはわかっていますが、これらは両方とも潜在的なエラーを隠しているように見えます。null 許容型のメソッドの型安全性が気に入っています。

型の安全性を維持しながらこれを行うためのよりクリーンな方法はありますか?

0 投票する
3 に答える
13403 参照

c# - C#/Oracle10g = null vs DBNull.Value vs String.Empty

私は、C# からの Oracle へのアクセスに初めて取り組んでいます。私は、Oracle が(C#)VarCharの値を持つパラメーターを好まないことを発見しました。null暗黙の変換があることを望んでいましたが、その違いに感謝しています。

したがって、これらの null 値をトラップしてDBNull.Value代わりに供給する必要がありますか? 最も明白な方法は、合体演算子を使用することでした??:

System.DBNull...の値を受け入れないことを除いて、次を使用する必要があります。

...これは確かに次と同じです:

..これも機能します。

しかし、ANSI SQL 規則によれば、空の文字列 ("") != NULL 値であることは常に理解していましたが、Oracle にはあるようです。

とにかく、私の質問は、null 文字列値のケースを処理するための、実用的または理論的な最善の方法は何ですか? 私が特定していない巧妙な代替手段はありますか? それとも、これは私たちが受け入れているオラクルの別の特異性ですか?

0 投票する
0 に答える
442 参照

c# - タイプの検証が失敗するたびに、バインドされたMaskedTextBoxのDBNullを返しますか?

マスク"00/00/0000"、PromptChar "_"、およびDateTimeのValidatingTypeを持つMaskedTextBoxコントロールがあり、null値も受け入れることができるデータベースのDateTime列にバインドされています。

DBNullの場合は、有効な日付を入力するか、空白のままにする(つまり、「__ / __ / ____」)必要があります。

TypeValidationCompletedイベントを使用することで、有効な日付が入力されたかどうかを判断できますが、日付が指定されていないか、無効な日付が指定されている場合は常に値をDBNullに設定する方法がわかりません。

検証が失敗するたびにMaskedTextBoxからDBNull値を取得するにはどうすればよいですか?

0 投票する
2 に答える
433 参照

.net - Nothing および/または DBNull を割り当てることができるカスタム構造?

Nothing および/または DbNull.Values を割り当てることができ、Nothing としてインスタンス化することもできるカスタム構造をデカールすることが可能であるかどうか、誰でもアドバイスできますか?

私が探しているのは、データベース クエリから DBNull.Value を受け取り、Nothing として開始できるカスタム DateTime オブジェクトを作成することです。これは可能ですか?

前もって感謝します。

よろしく、デュアン

0 投票する
6 に答える
44656 参照

c# - DateTimeDBNullの処理

私はこれの多くのバージョンをSOで見ましたが、どれも私のニーズにうまく機能していないようです。

私のデータは、DateTimeフィールドにnullを許可するベンダーデータベースから取得されます。まず、データをDataTableにプルします。

処理のためにDataTableをList<>に変換しています。

では、このインスタンスでDBNullをチェックするにはどうすればよいですか?メソッドを書いてみました。