問題タブ [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.

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

c# - DbCommand.ExecuteNonQuery エラー処理

.net で DbCommand.ExecuteNonQuery() を使用すると、スカラーが返されます。このコマンドから得られる情報はそれだけですか? または、たとえばコマンドが間違っている場合、またはタイムアウトなどがある場合、例外もありますか?

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

c# - DbCommand(Parameterized) 経由の SQL Server SHOWPLAN_XML が結果を返さないのはなぜですか?

開発を改善するために、C# 経由でクエリ プランを収集したいと考えています。

私のアプローチは使用DbCommandSET SHOWPLAN_XML ON

しかし...

  • Non-parameterized queryクエリプランをまとめて返します。
  • Parameterized query何も返しません!

SQL Server 2008 R2 と LocalDB(2012) の両方に同じ問題があります。

パラメータ化されたクエリの計画を取得するにはどうすればよいですか?

パラメータ化されたクエリが計画できない理由を知っていますか?


[サンプル:再現手順]</h1>

1. テーブルを作成します。

2.クエリを実行する

  • パラメータ化されていないクエリ

    これは返品プランになります:

    /li>
  • パラメータ化されたクエリ

    これは対応計画ではありません:

    /li>
0 投票する
2 に答える
1595 参照

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 を使用しているため、さまざまな種類のリレーショナル データベース管理システムを使用しているため、このような一意キー制約の違反を検出するためのより一般的な方法を探しています。

手伝ってくれてありがとう。

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

sql - .NET ORA-01858: 数値が必要な場所に数値以外の文字が見つかりました

名前付きパラメーターを作成しようとしていますが、エラーが発生します。

データベース Oracle.DataAccess.Client.OracleException ORA-01858 からデータを取得できませんでした: Oracle.DataAccess.Client.OracleException.HandleErrorHelper で数値が予期される場所に非数値文字が見つかりました...

次のクエリが作成されます。

パラメータは

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

c# - dbCommand とストアド プロシージャのパラメーターの名前は異なりますが、値が渡されます。なんで?

私は C# を使用DbCommandし、Oracle ストアド プロシージャを実行するためにインスタンス化します。

私の質問は次のとおりです。プロシージャは、db の on とは異なる名前付きパラメータを介して値を受け取るのはなぜですか?

にパラメータを追加するとdbCommand:

そして私は実行します:

dbCommandパラメータをストアド プロシージャ パラメータに正しく渡します。

  • 何故ですか?

  • 値のない最初のパラメーターに値を設定しますか、それとも位置に基づいていますか?

  • 位置に基づいている場合、なぜ名前が必要なのですか?

  • 開発者がコードを理解するのを助けるためだけの名前ですか?

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

vb.net - DbCommand.ExecuteNonQuery が無期限にハングする

Oracle データベースのテーブルに対して挿入クエリを実行しようとしていました。以下は私がやっているテストです。

  1. まず、SQL Developer セッションから挿入したいテーブルをロックします

    /li>
  2. DbCommand.ExecuteNonQuery を使用して挿入を実行してみてください
  3. CommandTimeout プロパティを 60 秒に設定しました

60 秒が経過してもコントロールは返されませんでしたが、テーブルのロックを解除すると、挿入が行われ、例外がスローされます。

コマンドのタイムアウトが期限切れになると、.NETは適切に例外をスローしますが、テーブルのロックが解除されるまでネイティブコードから制御が返されませんでした。この状況で無期限の待機を回避するにはどうすればよいですか?