問題タブ [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 投票する
3 に答える
21195 参照

c# - C# の SQL クエリで文字列配列をパラメーターとして渡す

C# で記述されたアプリケーションで、SQL クエリを記述しています。以下はクエリです

@resourcesその文字列を 1 つ以上持つユーザー入力パラメータです。

エラーが表示されずにクエリが失敗する

私によると、@resources次のパラメーターが渡されているため、クエリが失敗しています

(最初と最後に 2 つの逆コンマがあり、クエリに失敗しています)。

[Resource No_]NVARCHARはデータベースの型です。

[Resource No_] グーグルの後、このトピックに関するいくつかのヘルプを見つけましたが、タイプの場合はすべて適用できますInteger

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

c# - データセットは C# で何も更新しません

私はms-sqlでこの手順を書きました

そしてこのコードも

conec1動作していますが、上記のコードは何も更新しません。エラーはどこにありますか?

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

c# - sqlCommandBuilder の更新が期待どおりに機能しない

CommandBuilder を使用して更新しようとしています。データを取得するコードをボタン コマンドで取得すると、コードは完全に機能しますが、page_load からデータを取得すると、更新が失敗します。

このプログラムは、データベースからデータを取得し、sqlCommandBuilder を使用して特定のテーブルを更新するだけです。

何が起こっているのかわかりません。

失敗するコードは次のとおりです。

これが完全に機能するコードです。

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

c# - SqlDataAdapter.Update(dataset) メソッドは新しい行を挿入しますが、既存の行は更新しません

テーブルを表示する DataGrigView を持つ winform アプリケーションを作成しています。DB の操作を担当する DAL クラスがあります。

テーブルのデータをロードするメソッドが 1 つあります。

そして、テーブルに加えられた変更で DB を更新する責任がある 2 番目の方法:

問題: Items テーブルで新しい行が追加または削除された場合、UpdateItemsByOrder は期待どおりに DB の行を追加/削除します。ただし、Items テーブルの既存の行を更新しても、DB では更新されません。

エラーや例外はありません。builder.GetUpdateCommand() コマンドを追加しようとしました = 結果がありません。

ヘルプやアドバイスをいただければ幸いです。ありがとう

P>S> この MSDN LINKを使用して、SQLAdapter の操作方法を学習しています

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

c# - SqlDataAdapter.Update は 2 回目の更新までテーブルに書き込みません

C# 2010 Express で開発されたプログラムがあり、その下に個々のセル編集フィールドを持つ DataGridView で構成されるフォームがあります。行を選択 (左端をクリック) すると、その行の値が編集フィールドにコピーされます。変更が行われ、トランザクションの記憶ボタンがクリックされます。新しい値が DataGridView に表示されます。その後、フォームを閉じて再度開く (破棄して再読み込みする) と、新しい値ではなく、元の値が表示されます。明らかに、データベース レコードは更新されていません。

上記のプロセスが繰り返される場合、フォームを閉じる前にレコードが再度選択され、トランザクションの記憶ボタンが再度クリックされる場合を除いて、値はデータベースに保存されます。フォームを閉じてから再度開くと、新しい値が表示されます。

明らかに、望ましい動作は、[トランザクションの記憶] ボタンを最初にクリックした直後に値がデータベースに格納されることです。

次の宣言は、フォーム クラスの先頭に表示されます。

メソッド load_DataGridView() は次のようになります。アダプターの Update、Delete、および Insert クエリは、SqlCommandBuilder のそれぞれの GetXXXCommand() メソッドの呼び出しで構築されることに注意してください。デバッグ中のブレークポイントは、これらが正しく取り込まれたことを示します。

[トランザクションの記憶] ボタンがクリックされたときに呼び出されるコードは次のとおりです。

例外はスローされません。DataGridView から編集フィールドにデータを引き出してから再度書き戻すというアクションは、行が変更されたことを検出する _adapter.Update(_dt) コマンドの機能をどうにかしてサルにしているのではないかと思われます。何も更新しません。次に、2 回目の試行で、行が新たに選択された (新しい値が表示された) が、編集の変更が行われていない場合、機能します。どういうわけか、新しい値がグリッドに表示されていても、変更がコミットされていないようで、それを行うには行を再選択する必要があります。

以下の populateRowFromFields メソッドは、セル インデックスの列名参照を使用して、編集フィールドの値を行のセル値に書き戻します。

ヘルプ!これは私を夢中にさせています!

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

mysql - .Merge() メソッドを使用して DataTables をマージする際に値をオーバーライドする方法は?

.Merge() メソッドを使用して DataTables をマージする際に値をオーバーライドする方法はありますか?

たとえば、同じ回路図を持つ 2 つの DataTable があるとします。

両方とも 2 つの列があります。Names | Enabled;

DataTable1 の最初の行のエントリは次のとおりです。Peter Punani | true;

DataTable2 の最初の行のエントリは次のとおりです。Peter Punani | false;

.Merge() メソッドを使用してそれらをマージするDataTable1.merge(DataTable2);と、DataTable1 は 2 行になり、次のようになります。

明らかに、SQL DB に対して SqlCommandBuilder を使用して .Update() を実行しようとすると、主キー (名前) に 2 つの同一の値があるため、エラー ステートメントが表示されます。

しかし、DB1 に DB2 との違いを受け入れてもらいたいので、次のようになります (DB1 とは異なる他のすべてのエントリでそれを行います)。

では、これらのテーブルを適切に更新できるようにマージする最良の方法は何ですか?

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

c# - コマンドの初期化エラーを選択

質問

私はしばらくこれに苦労してきました。選択コマンドを初期化したと思っていたのに、以下のエラーが発生しましたか?

dataadapter.selectcommand.connection プロパティを初期化する必要があります

これが問題になる可能性があることを読んだので、主キーが設定されていないためにこのエラーが発生しないことはわかっています。私は間違いなく主キーを持っています。

バックグラウンド

この関数は、if ステートメントを使用して呼び出されるクエリを選択します。クエリ内には、エンド ユーザーが 2 つのコンボボックスで選択した内容に基づいて選択されるパラメーター化された変数があります。

クエリの例

動作していないビットは、Update_Clickイベント ハンドルです。

コード

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

sql - SqlDataAdapter.update() not updating database

I am searching for (PostId,UserId) into PostLikes table using SqlDataAdapter, if the row is found , I am using SqlCommandBuilder.GetDeleteCommand() to generate the delete instruction and deleting the underlying row, if the row is not found, then I use SqlCommandBuilder.GetInsertCommand() to generate the insert command and inserting the row to the table using SqlDataAdapter.Update(). But the row is not getting inserted to the table in database. Here is what I have done so far

and the table
PostLikes(LikeId,PostId,UserId)