- PR -

sqldatasorce のdeletecommand プロパティについて

1
投稿者投稿内容
ta
会議室デビュー日: 2006/07/22
投稿数: 9
投稿日時: 2006-09-22 11:21
お世話になります。現在 ASP.NET 2.0 のSqldatasorceとGridView を使ってデータの更新と削除を勉強しているのですが、初歩的なところでつまってしまい、途方にくれています。

環境 vs2005expressedition + sqlserver2000 です

Sqldatasorce にselectcommand とupdatecommand ,Deletecommand を設定し、削除ボタンと編集ボタンを表示できるようにしました。

更新と削除のパラメータを設定し、実行してみたところ
「更新」は問題なく実行されました。(DBも更新されています)
しかし[削除]を押した場合

[変数 '@フードNO' を宣言する必要があります。]
というエラーが返ってきます。

コントロールの設定だけで動くものと思っていたのですが、別途コード等を
追記しないといけないものなのでしょうか?

よろしくお願いいたします。
下記にエラーとなったコードを記載します。
(イベントハンドラは使用していません。デザイナの設定のみで実行しようとしています)



<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:cns1 %>"
SelectCommand="SELECT * FROM [tbl_フード]"
UpdateCommand="UPDATE tbl_フード SET [フード名]=@フード名,
[価格]=@価格 WHERE [フードNO]=@フードNO"
DeleteCommand="DELETE FROM tbl_フード WHERE [フードNO]=@フードNO"
>
<UpdateParameters>
<asp:Parameter Name="フード名" />
<asp:Parameter Name="価格" />
<asp:Parameter Name="フードNO" />
</UpdateParameters>
<DeleteParameters>
<asp:Parameter Name="フードNO" />
</DeleteParameters>
</asp:SqlDataSource>
<br />
<asp:GridView ID="GridView2" runat="server" DataSourceID="SqlDataSource1" AllowSorting="True" AutoGenerateDeleteButton="True">
<Columns>
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-09-22 11:50
ウィザード等を使わずに設定を記述しているのでしょうか?
プロパティから設定してるのかな?

気になるのはDataGridにDataKeyNamesの設定がないことですかね。
DataKeyNamesに"フードNO"を設定してみたらどうでしょう。
ta
会議室デビュー日: 2006/07/22
投稿数: 9
投稿日時: 2006-09-22 12:01
返信ありがとうございます。教えていただいた方法で解決いたしました。

datakeynames を設定せずとも
更新が実行されていたため、こんがらがってしまっていました。
ありがとうございました
1

スキルアップ/キャリアアップ(JOB@IT)