問題タブ [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.
asp.net - カスタム式による双方向バインディング?
データベースからいくつかのレコードを表示および変更するために、asp.net プロジェクトで gridview を使用しています。データベースには、start_date と end_date の 2 つの列があります。新しいレコードが作成されると、これらの列には null が含まれますが、後で gridview update コマンドを使用して変更できます。
gridview には、2 つのカレンダー コントロールを配置した 2 つのテンプレート フィールド (start_date と end_date という名前) があります。gridview の更新リンクをクリックすると、null 値がカレンダーにバインドされているため、常にエラーが返されます。このヘルパー関数を使用して解決しました:
カレンダー コントロールの SelectedDate で次の 2 つのカスタム式を使用しました。
問題は、日付の選択時にカレンダーをバインドする双方向データがデータベース テーブルを更新しないことです。回避策はありますか? あるいは、より良い解決策があれば幸いです。
sql - SQLビューはnull以外のテーブルからnull許容列を推測しますか?
null以外の「quantity」(decimal)列と「status」(int)列を持つProductテーブルがあり、次のケース式を使用してこのテーブルにビューを作成しました。
ProductTypeIdは、null以外として正しく推測されます。ただし、基になる列がNULL可能ではない場合でも、このビューの数量列はNULL可能であると推測されます。これは私には意味がありません。
この場合、ISNULL / COALESCEを使用してデフォルト値を提供し、null可能性を強制することはできますが、意味のあるデフォルト値はありません。これは、私が理解していることから、そもそも発生しないはずです。何が起こっているのかアイデアはありますか?
c# - NULL 値のキャスト
クラス オブジェクトにデータベース テーブルの値を設定しようとしています。フィールドは null 許容のsomeObject.Property
int 型です。
したがって、SomeField
isの場合null
、エラーConvert
が発生しDBNull
ます。これに使用する必要がある特定の方法はありますか?
asp.net - ASP.NETインライン式のDBNullからStringへのキャストエラーがあります
やあみんな、私のデータベースのテーブルには、「Nulls」を許可する「説明」フィールドがあります。これにより、ASP.NETでページをレンダリングするときに問題が発生します。これは、途中でエンコードするときに、データベースから出力される文字列を確実にデコードするためです。当然、説明にはいくつかのNULLがあります。残しておきたいフィールド。
したがって、私のASP.NETページにはこのコードがあります
したがって、ページをレンダリングすると、次のようになります。
私の見方では、2つの選択肢があります。
- ロード中にバインド
また
- テーブルをNULL以外のテーブルにし、代わりに空の値を使用します
誰かがおそらくより良いアイデアを持っていますか?
select - SQL Server db から NULL 値を選択
select ステートメントに問題があります。
次のようになります。
しかし、その DBNull.Value を機能させる方法がわかりません。代わりに "" を使用してみましたが、うまくいきません。
このステートメントを書き直す方法についてのアイデアはありますか? ありがとうございました。
asp.net - DropDownList は DbNull にバインドできません
DbNull にバインドしようとしている DropDownList がありますが、満足していません。value=" " で ListItem を作成することについてのアドバイスを見てきましたが、これはうまくいきません。
どんな助けでも大歓迎です。
c# - Informix(C#):blobフィールドを適切に設定/設定解除するにはどうすればよいですか?
IBM Informix SDK:
声明:Update mytable set myblobcolumn = ? where myid = 1;
別のIfxBlob
オブジェクトで更新すると正常に動作しますが、更新するとDBNull.Value
エラーが発生します。パラメータ化された更新を使用してblob列を「設定解除」する方法を知っている人はいますか?
アップデート:
わかりました、私はいくつかの調査を行い、物事を少し減らしました。
まず、IfxType
パラメーターを生成するときに明示的に宣言すると、データベース内のnull値から切り替えて実際のIfxBlobを使用するときに、.NETドライバーがDBNull.ValueまたはByte[]配列を変換する際に問題が発生することがわかりました。データベース。基本的に:
- 列に値が含まれていて、代わりにnullを格納したい場合は、次のようにパラメーターを型キャストする必要があります
UPDATE mytable SET myblobcolumn = ?::byte WHERE myid = 1;
。DBNull.Value
これにより、の値をエラーなしで保存できます。 - 列にnull値が含まれていて、代わりに実際の値を格納したい場合は、次のようにパラメーターを型キャストする必要があります
UPDATE mytable SET myblobcolumn = ?::blob WHERE myid = 1;
。これにより、IfxBlob値を保存できます。
さて、これをすべて回避するために、Parameterの初期化をParameterNameプロパティの設定のみに減らしましたvar param = new IfxParameter { ParameterName = "myblobcolumn" }
(それでも、コレクションから参照できるようにするだけで、それ以上は何もしません)。これにより、パラメーターを型キャストしなくてもステートメントを保持できます。
だから...私は次のように残されています:
声明:UPDATE mytable SET myblobcolumn = ? where myid = 1;
これは問題なく動作しますが、これに似たInformix .NETドライバー(3.50.xC7)のバグを発見したと思います。基本的に、提供されたリンクは、挿入を行うときに.NETドライバーがbyte[]配列を適切に使用してblobを作成できないバグが発見されたことを示しています。これは、 INSERTステートメントを実行cmd.Parameters["myblob"].Value = new Byte[] { 0x1, 0x2 };
するときに文字通り実行できるという点で修正されています。ただし、UPDATEステートメントにbyte []配列を使用すると、ドライバーは例外を出します。したがって、実際にIfxBlobインスタンスを作成し、実際のbyte[]配列の代わりにそれらを使用する必要がありました。
これがドライバーのバグではない場合、この質問を開いたままにして、ブロブフィールドを設定/設定解除する適切な方法がUPDATESにbyte[]配列を使用していることを確認する必要があります。
c# - とにかくDBNullは何のために必要ですか?
重複の可能性:
DBNull のポイントは何ですか?
.NET の冒険を始めて以来、私は常に 1 つの質問を自問してきました。
なぜ DBNull 型が必要なのですか? 単純な null 参照では不十分ですか?
MSDN は、DBNull は「存在しない値を表す」と述べています。論理的な観点から、この一文は null 参照が使用できない理由を説明しています。なぜなら、それは null 参照であり、値の欠如ではないからです。しかし、多くのトラブルを引き起こすタイプを導入するだけで十分ですか?
ところで:誰かが弁護のために何か言いたいことがあれば、DBNull
私は本当に感謝します.
.net - Byte()をDate()に変換する際の問題
DALに、1つのアイテム、日付をもたらすクエリがあります。日付またはnullのいずれかです。しかし、値がnullの場合、エラーが発生します。
タイプ「DBNull」からタイプ「日付」への変換は無効です。
クエリ
これが私の関数の呼び出し方です。
保証金が支払われた場合、テーブルに日付がありますが、そうでない場合はnullのままになります。
すべての助けは大歓迎です!
c# - ?? system.DBNull の演算子
これを単純化するための演算子または組み込み関数はありますか:
私は次のようなことができることを知っています:
しかし、私には多くのオブジェクトがあり、それを避けたい:
関数を作成することもできます。
最も簡単な方法は、?? を使用することです。演算子ですが、問題は「dataColumn」が ?? と互換性がないことです。null の代わりに system.DBNull を返すことがあるためです。即時ウィンドウ出力を見てください。
if..then なしで dataColumn.toString()=="" の場合に "-" を返すことができる (文字列) 関数または演算子があるのだろうか (なぜなら、それらすべてに対して多くの if..then を作成する必要があるからです)それ以外の場合は、上記の関数アプローチを使用します。