問題タブ [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.
sql-server-2008 - パラメーター値がストアード・プロシージャーに渡されたかどうかを判別する方法
テーブルのPKに基づいてテーブルのレコードを更新するストアドプロシージャ(SQL Server 2008 R2)を作成したいと思います。
ストアドプロシージャには、たとえば、次の4つのパラメータがあります。
ストアドプロシージャの呼び出し元が1つ(または複数)のパラメーターにNULL値を渡すかどうかと、呼び出し元が1つ(または複数)のパラメーターに何も渡さなかったかどうかを判断するにはどうすればよいですか?
C#の発信者の例:
発信者は以下を指定NULL
します@Phone
:
@Phone
呼び出し元はパラメーターを無視します。
ここで達成しようとしているのは、呼び出し元がパラメーターにNULL値を明示的に指定した場合、レコードをNULL
値で更新することです。ただし、ユーザーがパラメーターの受け渡しを明示的に無視した場合、UPDATE
クエリは特定のレコードに既に設定されているフィールド/列の値を保持します(つまり、クエリはその特定の列を更新しません)。
呼び出し元が決して使用しないと安全に想定できるデフォルト値を指定できると思います-次のようになります。
次に、ストアドプロシージャで、未定義の値を確認できます。パラメータvarsがまだ、、、および/または値NameIsUndefined
に設定されている場合は、呼び出し元がこれらのパラメータの値を明示的に定義していないと安全に推測できます。これが私の目標を達成する唯一の方法ですか?EmailIsUndefined
PhoneIsUndefined
c# - .Net nullをDBNull.Valueに自動的に変換しますか?
手作業でローリングするSQLクエリのデータパラメータへの値の追加を処理するユーティリティを作成しました。消費は次のようになります
また
myVariableのnull値はどのように処理する必要がありますか?
- すべての値は完全に信頼されている必要があります。責任は消費者のみにあります。とにかくnullが処理されることを消費者はどのように知るのでしょうか?
- nullは機能しないため、NullArgumentExceptionをスローする必要があります。なぜこれ以上進むのですか?
- nullは唯一の実行可能なソリューションであるため、自動的にDBNull.Valueとして解釈される必要があります。これはユーティリティですよね?それを利用可能にして、いくつかのコードを枯渇させてください!
オプションのボーナス質問:これらの議論が3人の政党候補によってなされた場合、彼らの政党はどうなるでしょうか。(そのような当事者の母国を明記してください)
c# - LinqtoDataTable-DBNullをキャストできません
Linqは初めてなので、これが基本的な場合はお詫びします。このクエリは、結果を列挙するときにエラー{"DBNull.Valueをタイプ'System.Int64'にキャストできません。null許容タイプを使用してください。"}をスローします。
列ParentIDはnullを受け入れます-これらを個別に処理する必要がありますか?
EDIT2:以下の実際のソリューションはまだLinqを使用しています。
編集: Linqを破棄し、代わりにDataTable.Selectステートメントを使用することでこれを解決しました。誰かがパフォーマンスの違いについて意見を持っているなら、私は興味があるでしょう。
asp.net - ASP.NET での DBNull と null の処理
これらの (誤った) 行を書き直す最良の方法は何ですか?
ブール?結果 = dr["結果"] == DBNull.Value ? null : Convert.ToInt32(dr["result"]);
...と...
dr["結果"] = 結果?? DBNull.Value;
どちらもコンパイルされません。
dr["result"] = null;
私は MySql コネクタを使用していますが、たとえば、最初に試したものを設定できません。
MySql nullable を表すためのより適切な .NET データ型はありtinyint(1)
ますか?
exception - 値がdbnull.valueの場合、vb.netのString.IsNullOrWhiteSpaceはエラーをスローします
String.IsNullOrWhiteSpace(valuefromDB)
valuefromDB
次の場合にエラーをスローしますdbnull.value
あれは正しいですか??
この関数は、dbnull.value
c# - C#を使用したSQLDataReader値のSystem.IndexOutOfRangeException
3 つの整数を返す SQLDataReader があります。ただし、2 つの整数が null 値を返す場合があります。
これを回避するために、次のように書きました。
残念ながら、まだエラーメッセージが表示されます。助言がありますか?
PS私もこれを試してみましたが運が悪かったです
if (reader["billID"] != null)
.net - .NET で DBNull を処理する最も効率的な方法
重複の可能性:
DBNull を処理する最善の方法は何ですか?
DBNull の値を持つ変数を設定するための .NET で最も効率的な構文は何ですか (別名 SQL null 値が返されます)? この種のことのために.NET 3.0に組み込まれたものを読んだことを覚えています。設定している変数の型が DateTime であると仮定しましょう。
一般的なエラー:
タイプ 'DBNull' からタイプ 'Date' への変換は無効です。
c# - ExecuteScalarはnullまたはDBNull(開発サーバーまたは本番サーバー)を返します
DataRow
C#の既存の列に列を追加しようとしています。その後、列は私のデータベースからの単一の値で埋められます。
DataRow drはすでに存在し、列「COLNAME」も存在します。
comTBPは私のSqlCommand
です。
データベースに値があり、ExecuteScalar()がその値を取得できる場合、これはすべて正常に機能します。このコードを開発サーバー(ローカル)でテストすると、ExecuteScalar()がnullまたはDBNullを返し、新しい列の値が0の場合にも機能します。ただし、コードを運用サーバーにデプロイすると問題が発生します。同じデータベースですべてを同じように実行すると、DBNullをInt32に変換できないというメッセージとともに例外がスローされます。
私の質問は、なぜこのエラーがローカル開発サーバーではなく本番サーバーに表示されるのですか?
.net - null文字列とDBNullについて混乱しています
作業中の.netプログラムのコードを見ています。プログラムの前の作者は、1年以上前に私にコードをくれました。突然、触れていないコードから例外がスローされました。
例外は、「タイプ'System.DBNull'のオブジェクトをタイプ'System.String'にキャストできません。
文字列はnull許容データ型だと思ったのですが、どうすればこの例外が発生する可能性がありますか?
sql - SQLでの制約の確認-値がnullまたは制約である可能性があることを指定します
要件が次の場合、SQLiteにチェック制約を組み込むことを試みています。
- 値はnullである可能性があります
- 値がnullでない場合は、3より大きくする必要があります。
だから、私の作成テーブルに私は書いた
このため、テーブルを作成しているように見えますが、大なり記号の条件は適用されません。
そして私も試しました
これは、そもそもテーブルを作成することすらありません。
誰かがこれらの制約の両方を実施する方法を手伝ってもらえますか?
ありがとう