- - PR -
SQL Delete でエラー ParameterName '@OrderID' .....
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-08-14 08:54
お世話になります。
SQLでDeleteしようとすると下記のエラーが出ます。 「ParameterName '@OrderID' を持つ SqlParameter は、この SqlParameterCollection に含まれていません。」
「データソース構成」のストアドプロシージャの定義で[Delete]タブ DELETE FROM Schedule WHERE (OrderID = @OrderID) [UPDATE][SELECT]は、動いています。 UPDATE Schedule SET KanjaMei = @KanjaMei, Age = @Age, Sex = @Sex WHERE (OrderID = @OrderID) SELECT OrderID, UserID, KanjaMei, Age, Sex, StartDate, StartTime, Device, MemoryNo FROM Schedule WHERE (UserID LIKE @UserID) AND (StartDate BETWEEN @StartDate AND @EndDate) ORDER BY StartDate, StartTime また、上記のDelete は、ストアド内の「クエリビルダ」「クエリ実行」でパラメータを直接入れるとそれは削除されます。 aspx.cs の SqlDataSource3_Deleting() からうまき行きません。 教えてください。 | ||||
|
投稿日時: 2008-08-19 08:38
お世話になります。
ネット上などで調べる限り原因を見つけられません。 とりあえず、削除を更新に変えて削除フラグをセットするというページがあったので下記のように変更してみましたが、エラーが出ます。このエラーは、「削除」のときもたまに出ていましたが「宣言を指定ください」の意味がわかりません。教えてください。 エラー:「スカラ変数 "@OrderID" を宣言してください」 参照サイト:http://dotnetfan.org/blogs/dotnetfanblog/archive/2007/01/04/2316.aspx
ASP.NET C# VS2005 [ メッセージ編集済み 編集者: SL 編集日時 2008-08-19 08:46 ] | ||||
|
投稿日時: 2008-08-25 02:21
たぶん、GridViewのDataKeyNamesを設定しないとDeleteCommandには自動では渡されないのが
原因でしょう。設定すればC#側のコーディングは不要なはずです。 どちらの例のGridView1_RowDeletingも何をしようとしているのかよくわかりませんが、 やるならSqlDataSourceのDeletingで e.Command.Parameters.Add(new SqlParameter("@名前",値)); でしょう。 | ||||
|
投稿日時: 2008-08-25 09:37
お世話になります。
protected void SqlDataSource3_Deleting(object sender, SqlDataSourceCommandEventArgs e) { e.Command.Parameters.Add(new SqlParameter("@OrderID", stUpdateOrderIDForDelete)); } とすることでできました。 Add で変数を追加宣言しているのですね。ありがとうございました。 |
1