問題タブ [sqlcommandbuilder]

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 に答える
1368 参照

ado.net - SqlCommand (CommandType Text) パラメータ コレクションを取得します

CommandType = TextSqlCommandのときにパラメータ コレクションを取得する方法はありますか?

例えば:

[@Param1,@Param2] を使用してパラメーター コレクションを取得する方法が必要です... SQL クエリ (動的) がわからず、アプリケーションのパラメーターを取得して入力コントロールとして作成したいと考えています。

SqlCommandBuilder.DeriveParameters(command)ストアド プロシージャでしか機能しないため、これを行うことはできません。

ありがとうございました!

0 投票する
3 に答える
2420 参照

c# - SqlCommandBuilder はどのように機能し、ReSharper の提案を削除するにはどうすればよいですか?

その仕組みがわかりませんSqlCommandBuilder。次のコードがあります。

変数builderはどこでも使用されておらず、 MSDNGetUpdateCommand()のようにメソッドを呼び出していません。を作成し、 を渡すだけです。しかし、コードは正常に機能します。SqlCommandBuilderSqlDataAdapter

コードを見ると、次の行のようです

安全に削除できます。実際、ReSharper はそれを削除することを提案しています。SqlDataAdapterしかし、そうすると、更新の実行方法がわからないため、コードは実行されなくなります。

SqlDataAdapterデバッグ モードで、その行を実行した後、のUpdateCommandプロパティが のままであることに気付きましたnullMSDN -docsから、が のイベントにSqlCommandBuilder登録されていることがわかります。RowUpdatedSqlDataAdapter

しかし、そのイベントがトリガーされたとき、それは何をしますか? はSqlDataBuilder実際にアップデート自体を実行していますか?

他に気付いたことは、を削除すると、ステートメントで InvalidOperationException が発生する直前にSqlCommandBuilder、メソッドが 1 回トリガーされることです。それを予想しなかった。イベントは、行が実際に更新されたときにのみ発生すると思います。DaRowUpdatedda.UpdateRowUpdated

つまり... 3 つの具体的な質問:

  1. ReSharper がこの行の削除を提案しないようにするにはどうすればよいですか?
  2. インスタンスの作成が渡されたSqlCommandBuilderもので何かをしていることをコードがまったく示していない のようなクラスをプログラムするのは悪い習慣ですか?SqlDataAdapter
  3. これはデザインパターンですか?
0 投票する
1 に答える
702 参照

sql - ADO.NET での CommandBuilder の使用または回避

CommandBuilder を使用することをお勧めしますか、それとも SqlDataAdapter の InsertCommand、DeleteCommand、および UpdateCommand を手動で作成する必要がありますか?

CommandBuilder を使用する明らかな利点は開発者の時間が少ないことですが、欠点は実行時間が長くなることです。これらの要因以外に、CommandBuilder を使用/回避する際に留意すべきことはありますか?

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

ado.net - SSIS式ビルダーでdatetime値を使用してSQLコマンドを作成する方法は?

Ado.Net Sql コマンドを使用して、日付フィルターを使用してテーブルからデータを選択しようとしています。

Date_Insertedとはどちらも@[User::LastInsertedDate]タイプDateTimeです。式ビルダーで式を評価しようとすると、次のエラーが発生します。

式に無効なトークン、不完全なトークン、または無効な要素が含まれている可能性があります。形式が正しくないか、括弧などの必須要素の一部が欠落している可能性があります。

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

c# - SQL Command Builder と SQL Data Apdater の使用方法

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommandbuilder.aspxから SQL Command Builder クラスを読み ましたが、select および update コマンドを使用してデータセット/データベースで行われた更新を表示できることがわかりました.

単一のデータセットを使用している場合、SQL Command Builder の概念は明確ですが、2 つの異なるデータセットを使用する場合はどうすればよいですか?

シナリオ: データベースから 1 つのデータセット ds1 に値を読み込んでいます。これは、SQL アダプターと SQL コマンド ビルダーに割り当てられます。現在、ds1 から選択した値のみを読み取り、2 番目のデータセット ds2 に格納しています。これは、SQL データ アダプターおよび SQL コマンド ビルダーには割り当てられません。

データベースが更新されるかどうかに関係なく、ds2 のデータを更新するかどうかが心配です。また、SQL Command builder と SQL Adapter を使用してどのようにすればよいですか。

//プライマリ データセット

プライマリ データセットは、フォーム ロード イベントの入力です。ユーザーは選択したアイテム番号を入力します。これは、プライマリ ds から検索され、2 番目の ds に保存/表示されます (2 番目の ds は現在、アダプターまたはコマンド ビルダーに接続されていません)。例えば; 2nd dsには3つのアイテムがあります。

ここで、ユーザーが 2 番目の ds の情報を更新すると、データベースが自動的に更新され、グリッドに表示されるはずです。

//2 番目の ds2 更新コード

}

あなたの提案によると、上記のコードでアダプター/ビルダーを追加/宣言している場合、機能しません。テーブル マッピング エラーが発生しています。

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

c# - SQL コマンド ビルダーのクエリ値

SQLDataAdapter があります。クエリで、ID(PK)、名前の 2 つのフィールドを取得しています。

SQL コマンド ビルダーをデータ アダプターに登録したので、データベース内のテーブルを更新するためにクエリを記述する必要はありません。

メソッドを呼び出すとda.update()、sql が DimensionID に null を挿入できないというエラーをスローします。このエラーのため、データセットでもこのフィールドを選択する必要があり、グリッドにこのフィールドを適切な値で入力します。その後da.update()働いた。

問題は、このフィールドを自分のグリッドに表示したくないということです.visibleプロパティをfalseに設定すると、コマンドビルダーはクエリでこの列を省略します. この問題に対応するには、列幅を 0 に設定する必要がありますが、グリッドにはまだ小さな線が残っています。

この状況を処理するより良い方法はありますか? ただし、手動でクエリを作成します。

以下は、グリッドを設定するコードです。

更新されたボタンの背後にあるコードは次のとおりです。

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

vb.net - DataGridView からの SQL データベース テーブルへの入力

もう一度、私はあなたに助けを求めています。DataGridView に入力されたデータを SQL テーブルに保存しようとすると、少し行き詰まります。

私はいくつかの投稿をフォローしましたが、それを理解するために縫い合わせることができません

フォームで次の変数をグローバルに宣言します

フォームが読み込まれるときにこれを呼び出します

ユーザーがデータグリッドビューに行を残したときにこれを呼び出し、SQLテーブルに保存する必要があります

フォームが読み込まれると、データ グリッド ビューに正しい列が表示されるので、最初の部分は問題ないと思います。問題は、データを保存し直すときに発生します。初めて実行すると、エラー メッセージは表示されません。2 行目を試すと、次のエラーが表示されます。

Update には、新しい行を含む DataRow コレクションを渡すときに有効な InsertCommand が必要です。

私が理解できることから、データアダプターに更新コマンドが設定されていないため、問題が発生しています。

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

datagridview - SQL Server ストアド プロシージャを使用して Datagridview を削除しますか?

私はvb.netが初めてです。我慢してください。にデータを挿入、更新、削除する方法を学びたいDatagridviewです。これまでのところ、これに対する最善のアプローチは?にバインドすることだと学びDatagridViewました。DataTable要件は、ストアド プロシージャを使用することです。データベース テーブルに直接アクセスすることは許可されていません。

私の公開変数:

以下のロードからの私のコード:

私のボタン保存コード:

質問: を機能させる方法がわかりませんSqlCommandBuilderSqlCommandBuilder既存の挿入、更新、削除ストアド プロシージャをオーバーライドして使用する方法はありますか?

私は解決策を見つけたと思います: (しかし、データベース側の副作用については本当に理解していません。) SQLCommandBuilder が挿入、更新、削除コマンドを作成したので、既存の挿入、更新、更新が不要になったということですか?ストアド プロシージャを削除しますか? 私が働いている会社では、テーブルへの直接アクセスは許可されていません。

私の更新されたコードの下:

cmdSaveDetails_Click コード:

ストアドプロシージャを使用して独自の挿入、更新、削除コマンドを作成することにより、SQLCOMMANDBUILDER を複製しようとしています。buttonSave_Click でこのエラーが発生しました: sqladapter.Update(dtable) ERROR: "同時実行違反: UpdateCommand は、予想される 1 レコードのうち 0 に影響を与えました"

私の更新されたコードの下:

グローバル変数:

フォーム ロード コード:

LoadDisbursementDetails サブコード:

myownSqlCommandBuilder サブコード:

ボタン保存コード:

助けてください。私は立ち往生しています。ありがとう。