問題タブ [executescalar]
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.
c# - 1 を返すストアド プロシージャを呼び出すと、ExecuteScalar が NullReferenceException をスローする
この質問を投稿する前にいくつかの調査を行いましたが、データが返されない場合、ExecuteScalar が System.NullReferenceException をスローするという事実を認識しています。そのため、ストアド プロシージャを「return 1」に変更して、戻り値が保証されるようにしました。ただし、まだ NULL 参照例外が発生しています。
そこで、SqlCommand を使用して、データを持つテーブルをクエリしようとしました。
execute scalar を実行すると、値を取得できたので、データベースにクエリを実行する権限があることがわかりました。これは、私が見逃した特定のストアド プロシージャのアクセス許可設定であると思われますか?
私はこれで1日立ち往生しているので、コメント/提案を本当に感謝しています. :(
私のコードは次のようになります。
ありがとう!
executescalar - ExecuteScalar()を使用すると、「デフォルト」のCommandBehaviour?を使用してExecuteReader()が呼び出されます。
スタックトレースは、ExecuteReaderがExecuteScalarの基礎となるメソッドであることを示しています。関連するコマンドの動作を調べているときに、以下の投稿を見つけました。これは、commandbehaviour.defaultがリーダーによって使用されることを示しています。
ExecuteScalar()には、ExecuteReader()よりも優れた利点がありますか?
datareader.close()、datareader.dispose()を使用して、接続を常に明示的に閉じて破棄できることを認識しています。ただし、ExecuteReader(commandbehaviour.Closeconnection)が使用されます。一方、ExecuteReader(CommandBehaviour.Default)は、データリーダーオブジェクトが閉じられているか、破棄されている場合でも、基になる接続を開いたままにします。だから私の質問は、executescalarがデフォルトの動作を使用している場合、スカラー値が取得されたら、基になる接続が閉じられていることを確認するにはどうすればよいですか?
c# - ExecuteScalar で 2 つのクエリを使用しているときに 1 つのクエリが失敗する可能性
1 つの更新クエリと 1 つの挿入クエリのような複合クエリであるクエリを作成しました。私はExecuteScalarを使用しています。1 つのクエリが失敗し、他のクエリが成功する可能性はありますか。クエリの 1 つが間違っていると、全体的な失敗または部分的な失敗になります。
誰か助けてください:)
vb.net - SqlCommand.ExecuteScalar - 特定のデータ項目を指定する
10 列のデータを返すストアド プロシージャがあります。を使用cmd.ExecuteScalar()
すると、1 番目のレコードから 1 列目の値が返されます。
エイリアス/データ項目名を指定して、別の列を返すことができるようにするにはどうすればよいですか?
私は次のようなことができるようにしたい:
vb.net - vb.net-オブジェクト参照がオブジェクトのインスタンスに設定されていません
sqlステートメントにパラメーターを使用しようとするとこのエラーが発生しましたが、使用しない場合は正常に機能します。私のコードは以下の通りです:
そして、私がコメントするときtxtUserType.Text = i.ToString
、それはうまくいきます。何か案が?
c# - ExecuteScalarは、ストアドプロシージャを実行すると0を返します
次で終わるストアドプロシージャを呼び出すC#プログラムをリファクタリングしています。
C#コードは次のようになります。
上記のコードを使用すると、
ストアドプロシージャResult
によって返される値が正しく入力されます。
より簡単なコードのリファクタリングExecuteScalar
:
値は奇妙なことに0に設定されていResult
ますが、期待される結果はゼロより大きい整数値である必要があります。
この奇妙な行動の原因が何であるか知っていますか?
ノート:
ストアドプロシージャにはいくつかのifブロックがあり、特定のチェックの場合はゼロ未満の結果値を返します。これらのケースは、ExecuteScalar()によって正しく処理されます。
この問題は、ストアドプロシージャが正しく機能し、さまざまな更新のトランザクションをコミットしてResult
、最後に値を返す場合に発生します。
c# - 配列 DbParameter[] の作成方法
マニュアルによると、ExecuteScalar メソッドは次のように使用する必要があります。
しかし、そのパラメーターの配列を作成するにはどうすればよいでしょうか? ストアド プロシージャ 2 のパラメーターを指定する必要があります。
c# - ExecuteScalarはnullまたはDBNull(開発サーバーまたは本番サーバー)を返します
DataRow
C#の既存の列に列を追加しようとしています。その後、列は私のデータベースからの単一の値で埋められます。
DataRow drはすでに存在し、列「COLNAME」も存在します。
comTBPは私のSqlCommand
です。
データベースに値があり、ExecuteScalar()がその値を取得できる場合、これはすべて正常に機能します。このコードを開発サーバー(ローカル)でテストすると、ExecuteScalar()がnullまたはDBNullを返し、新しい列の値が0の場合にも機能します。ただし、コードを運用サーバーにデプロイすると問題が発生します。同じデータベースですべてを同じように実行すると、DBNullをInt32に変換できないというメッセージとともに例外がスローされます。
私の質問は、なぜこのエラーがローカル開発サーバーではなく本番サーバーに表示されるのですか?
c# - ExecuteScalar コンパイル エラー
でエラーが発生しExecuteScalar()
ます。スカラー変数を宣言する必要があると書かれています@PicID
。スカラー変数を宣言するにはどうすればよいですか? または、この機能全体を間違って実行していますか?
c# - Executescalar クエリ コードの問題
以下のクエリでメンバー ID を返そうとしています。クエリと同じようにクエリを実行すると20になりますが、コードを実行するとゼロが返されます。ここで何が間違っていますか?