トップ回答者
GridViewの更新ボタンをObjectDataSourceの更新処理で実行したい

質問
-
UPDATE 社員_正規化
SET 氏名 = @氏名, 部署コード = @部署コード,
役職コード = @役職コードWHERE (id = @id)
GridViewで更新ボタンを押したとき
WHERE以降がないと全件更新してしまいます。
idはキー項目なので条件に足したのですがうまくいきません。
どこが間違っているのでしょうか。
Updateメソッドは
UpdateQuery(String 氏名, Nullable<Int32> 部署コード, Nullable<Int32> 役職コード, Int32 id)、戻り値 Int32
なっています。
テーブルは、id、氏名、部署コード、役職コードでできています。
回答
-
@idにきちんと値が渡っていない可能性があります。UpdateParametersの設定は正しくされていますか?
#テストで
WHERE (id = @id)
ではなく、
WHERE (id = 5)
とするとid=5のレコードが更新されるのであれば、やはり@idが0か何かなのでしょう。
例えば、
役職コード = @id
として役職コードに何か入るかで@idの値を知ることができると思います。SQL Serverであれば、可能であればSQL Server Profilerを使って実際に発行されているSQLを確認するのが確実ですし、安全です。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/- 回答としてマーク 絶対初心者 2011年5月2日 0:36
すべての返信
-
@idにきちんと値が渡っていない可能性があります。UpdateParametersの設定は正しくされていますか?
#テストで
WHERE (id = @id)
ではなく、
WHERE (id = 5)
とするとid=5のレコードが更新されるのであれば、やはり@idが0か何かなのでしょう。
例えば、
役職コード = @id
として役職コードに何か入るかで@idの値を知ることができると思います。SQL Serverであれば、可能であればSQL Server Profilerを使って実際に発行されているSQLを確認するのが確実ですし、安全です。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/- 回答としてマーク 絶対初心者 2011年5月2日 0:36