問題タブ [dbcommand]
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# - DbCommand.ExecuteNonQuery エラー処理
.net で DbCommand.ExecuteNonQuery() を使用すると、スカラーが返されます。このコマンドから得られる情報はそれだけですか? または、たとえばコマンドが間違っている場合、またはタイムアウトなどがある場合、例外もありますか?
c# - DbCommand(Parameterized) 経由の SQL Server SHOWPLAN_XML が結果を返さないのはなぜですか?
開発を改善するために、C# 経由でクエリ プランを収集したいと考えています。
私のアプローチは使用DbCommand
とSET SHOWPLAN_XML ON
しかし...
Non-parameterized query
クエリプランをまとめて返します。Parameterized query
何も返しません!
SQL Server 2008 R2 と LocalDB(2012) の両方に同じ問題があります。
パラメータ化されたクエリの計画を取得するにはどうすればよいですか?
パラメータ化されたクエリが計画できない理由を知っていますか?
[サンプル:再現手順]</h1>
1. テーブルを作成します。
2.クエリを実行する
パラメータ化されていないクエリ
これは返品プランになります:
/li>パラメータ化されたクエリ
これは対応計画ではありません:
/li>
c# - ユニーク キー違反をキャッチする一般的な方法
System.Data.Common.DbCommand を使用して、データベースに新しい行を挿入します。ポイントは、この行がすでに存在することです。
System.Data.SqlClient.SqlException を明示的にキャッチすると、次のように ErrorNumber を評価できます。
SqlException のコンテキストでの ErrorNumber 2627 は、一意のキーの違反を意味します。https://msdn.microsoft.com/en-us/library/ms151757%28v=sql.110%29.aspxを参照してください。
ここまでは順調ですね。私は DbCommand を使用しているため、さまざまな種類のリレーショナル データベース管理システムを使用しているため、このような一意キー制約の違反を検出するためのより一般的な方法を探しています。
手伝ってくれてありがとう。
sql - .NET ORA-01858: 数値が必要な場所に数値以外の文字が見つかりました
名前付きパラメーターを作成しようとしていますが、エラーが発生します。
データベース Oracle.DataAccess.Client.OracleException ORA-01858 からデータを取得できませんでした: Oracle.DataAccess.Client.OracleException.HandleErrorHelper で数値が予期される場所に非数値文字が見つかりました...
次のクエリが作成されます。
パラメータは
c# - dbCommand とストアド プロシージャのパラメーターの名前は異なりますが、値が渡されます。なんで?
私は C# を使用DbCommand
し、Oracle ストアド プロシージャを実行するためにインスタンス化します。
私の質問は次のとおりです。プロシージャは、db の on とは異なる名前付きパラメータを介して値を受け取るのはなぜですか?
にパラメータを追加するとdbCommand
:
そして私は実行します:
dbCommand
パラメータをストアド プロシージャ パラメータに正しく渡します。
何故ですか?
値のない最初のパラメーターに値を設定しますか、それとも位置に基づいていますか?
位置に基づいている場合、なぜ名前が必要なのですか?
開発者がコードを理解するのを助けるためだけの名前ですか?
vb.net - DbCommand.ExecuteNonQuery が無期限にハングする
Oracle データベースのテーブルに対して挿入クエリを実行しようとしていました。以下は私がやっているテストです。
まず、SQL Developer セッションから挿入したいテーブルをロックします
/li>- DbCommand.ExecuteNonQuery を使用して挿入を実行してみてください
- CommandTimeout プロパティを 60 秒に設定しました
60 秒が経過してもコントロールは返されませんでしたが、テーブルのロックを解除すると、挿入が行われ、例外がスローされます。
コマンドのタイムアウトが期限切れになると、.NETは適切に例外をスローしますが、テーブルのロックが解除されるまでネイティブコードから制御が返されませんでした。この状況で無期限の待機を回避するにはどうすればよいですか?