問題タブ [sqlcommand]
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日立ち往生しているので、コメント/提案を本当に感謝しています. :(
私のコードは次のようになります。
ありがとう!
tsql - SqlDataReader を使用して TSQL 出力句からエラー メッセージを取得する
私は次のSQLを持っています
出力された行を読み取るSqlCommand.ExecuteReader()
を取得するために使用します。SqlDataReader
パラメータが正しい場合、すべて正常に動作します。
問題は、パラメーターが満たしていない制約がテーブルにある場合に始まります。次に例を示します。
val1 と val2 に同じ値を指定してコマンドを実行すると、リーダーは黙って失敗します。私にできることはSqlDataReader.HasRows
、 を返すプロパティをチェックすることだけですfalse
。
だから私の質問は、返されたからより具体的なエラーを取得するにはどうすればよいSqlDataReader
ですか?
stored-procedures - ADO.NET:自分のシステムにたくさんのストアドプロシージャがありますか?
こんにちはすべて私たちは、SqlCommandオブジェクトのCommandTypeプロパティに、TableDirect、Text、およびStoredProcedureまたは「SP」の3つのオプションがあることを知っています。
「SP」には他の2つのオプションよりも利点があることを知っているので、私の質問は、自分のシステムで多くのSPを作成するかどうかです。
または、SPを作成する代わりに、どのようなソリューションがありますか?
ありがとうございました
sql - SQL - 日時の範囲を単一の将来の日時に置き換える方法は?
これは基本的な SQL 日時の質問ですが、データベースを台無しにしたくありません。
たとえば、MySQL データベースで、テーブルの 1 つの 1 つの列で日付 X と日付 Y の間のすべての日時値を置き換えたい場合、それを行う SQL コマンドは何ですか? 例: 今月の 1 月のすべての日時値を 3 月の将来の日時に置き換えたいとします。
他の StackOverflow の質問のおかげで、日時の範囲を選択する方法を知っています - 例:
しかし、これに replace() 関数を追加する方法は?
ご協力いただきありがとうございます。念のため、データベースのバックアップを作成しました。
c# - ストアドプロシージャ(Visual Studio ASP.Net 2005 C#)
「Employee」というデータベーステーブルにデータを挿入する「usp_insertempdata」というストアドプロシージャを作成したので、それを実行しました。データを保存すると、「ConnectionStringプロパティが初期化されていません。助けてください!」という例外が発生します。私のコード
sql-server - .NET から、SqlCommand オブジェクト (SQL パラメータを使用) によって生成された完全な SQL 文字列を取得できますか?
.NET 環境から、 SqlCommandオブジェクトによって生成される完全な SQL 文字列にアクセスできますか?
注: 完全な SQL 文字列は、VisualStudio のデバッグ モードで、Intellisense ホバーに表示されます。
必要に応じて、リフレクション テクニックを使用します。ここにいる誰かがそれを手に入れる方法を知っていると確信しています。
更新 1 :
パラメータを持つストアド プロシージャを呼び出しておりcmd.CommandType = CommandType.StoredProcedure
、生成されて実行された完全な SQL を取得しようとしています。cmd. Prepare()メソッドは、状態フィールドなどに完全な文字列を格納する可能性がある場合、この状況では役に立たない可能性があります。
更新 2:
準備中または実行中に完全な SQL 文字列が内部的に生成されないことを示す以下の (および参照されている) 回答に照らして、.NET Reflector を使用して少し調べてみました。内部接続クラスでさえ、オブジェクトを文字列に煮詰めるのではなく、渡すように見えます。次に例を示します。
内部抽象 void AddPreparedCommand( SqlCommand cmd );
宣言型: System.Data.SqlClient.SqlInternalConnection
アセンブリ: System.Data、Version=2.0.0.0
一般に、何ができるかを証明し、実際に何が起こっているかを示すために、詳細なレベルまで詳しく説明してくれた皆さんに感謝します。とても有難い。徹底した説明が好きです。彼らは確実性を追加し、答えに信憑性を与えます.
c# - SqlParameter ParameterDirection
SqlParameters
今日、ある開発者から、すべてをSqlCommand
to に設定する際に不利な点やリスクがあるかどうか尋ねられましたParameterDirection.InputOutput
。おそらくいくつかのパフォーマンスの問題を期待することはできませんでした(しかし、それについても確信が持てません)?そんな経験ある人?
c# - C#でSQLストアドプロシージャにパラメータを渡す
CARIID
上記は、整数であるパラメーターを使用して以下のストアドプロシージャを呼び出すために記述しようとしているコードです。コードを実行するとエラーが発生し、次のように表示されますが、ここ"Procedure or function 'GetIslemIdleri' expects parameter '@CARIID', which was not supplied."
から読んだ例からわかる限り、このコードでパラメーターを送信しています。助けが必要です。よろしくお願いします。cmd.Parameters.Add(new SqlParameter("@CARIID", 110));
c# - " ReadOnlyException DataTable DataRow "列 X は読み取り専用です。"
最初にSqlDataAdapterオブジェクトを何度も作成した短いコードがあります。
呼び出しを少し合理化しようとして、SqlDataAdapterをSqlCommandに置き換え、 SqlConnectionをループの外に移動しました。
今、DataTableに返されたデータの行を編集しようとすると、以前にスローされなかったReadOnlyExceptionがスローされます。
注: ID に基づいて従業員の氏名を取得するカスタム関数があります。ここでは簡単にするために、以下のコード例で「John Doe」を使用して要点を示しました。
ExampleQueryOldはSqlDataAdapterで動作します。ExampleQueryNewは、 DataRowの要素に書き込もうとするたびにReadOnlyExceptionで失敗します。
- ExampleQueryOld
これは機能し、問題はありません。
- ExampleQueryNew
この例では、ReadOnlyException がスローされます。
DataRow要素に書き込める場合と書き込めない場合があるのはなぜですか?
SqlConnectionがまだ開いているためですか、それともSqlDataAdapterが舞台裏で何かを行っているためですか?
c# - SqlCommand を使用して、そのオブジェクトに複数のパラメーターを追加する方法、SQL テーブルへの winform による挿入
Winform に 10 個のテキスト ボックスがあり、これらのテキスト ボックスに入力したテキストを SQL データベース テーブルの 10 列に保存する必要があります。だから、これのために私は書く:
または、テキストボックスごとに 10 個の個別のクエリ:
または、効率的なコードを提案してください。
単一のステートメントで cmd に複数のパラメータを追加する方法は? 出来ますか?