C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[4]: GridView削除時のAffectedRowsが-1
(過去ログ 100 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■59612
/ inTopicNo.1)
GridView削除時のAffectedRowsが-1
▼
■
□投稿者/ まっさ
(45回)-(2011/06/02(Thu) 09:15:00)
分類:[ASP.NET (C#)]
GridViewでストアドプロシージャを使用して
削除をしています。
データは正しく削除されて問題無いのですが、かならずe.AffectedRowsが-1になります。
これはどういう事がご存知の方はいませんか?
protected void SqlDataSource1_Deleted(object sender, SqlDataSourceStatusEventArgs e)
{
if (e.AffectedRows < 1)
{
MsgLabel.Text = "エラー!";
}
}
ということで、上記ロジックだと、更新されてるのに「エラー!」となります。
よろしくお願い致します。
引用返信
編集キー/
編集
■59655
/ inTopicNo.2)
Re[1]: GridView削除時のAffectedRowsが-1
▲
▼
■
□投稿者/ クエール
(1回)-(2011/06/02(Thu) 23:09:13)
■
No59612
(まっさ さん) に返信
> GridViewでストアドプロシージャを使用して
> 削除をしています。
>
> データは正しく削除されて問題無いのですが、かならずe.AffectedRowsが-1になります。
> これはどういう事がご存知の方はいませんか?
ストアドプロシージャを使用しているからじゃないですか?
ストアドプロシージャを使用せずに直接削除クエリを実行するとどうなりますか?
引用返信
編集キー/
編集
■59680
/ inTopicNo.3)
Re[2]: GridView削除時のAffectedRowsが-1
▲
▼
■
□投稿者/ まっさ
(48回)-(2011/06/03(Fri) 15:29:00)
■
No59655
(クエール さん) に返信
> ■
No59612
(まっさ さん) に返信
>>GridViewでストアドプロシージャを使用して
>>削除をしています。
>>
>>データは正しく削除されて問題無いのですが、かならずe.AffectedRowsが-1になります。
>>これはどういう事がご存知の方はいませんか?
>
> ストアドプロシージャを使用しているからじゃないですか?
> ストアドプロシージャを使用せずに直接削除クエリを実行するとどうなりますか?
ありがとうございます。
たしかに直接削除クエリを実行すると正しい値が取れました。
今回は、単純な削除クエリなのでOKなんですが、ストアドで組みたい時も多いんですが・・・
う〜ん、ストアドでは無理なんですかね?
引用返信
編集キー/
編集
■59697
/ inTopicNo.4)
Re[3]: GridView削除時のAffectedRowsが-1
▲
▼
■
□投稿者/ クエール
(2回)-(2011/06/03(Fri) 18:33:26)
■
No59680
(まっさ さん) に返信
> 今回は、単純な削除クエリなのでOKなんですが、ストアドで組みたい時も多いんですが・・・
>
> う〜ん、ストアドでは無理なんですかね?
削除された件数がほしいのでしょうか?
そもそも、例えば、ストアド内に、テーブルAの該当レコードを削除して、テーブルBの関連レコードを削除して、
テーブルCを更新して...という処理を組んだ場合、e.AffectedRowsに何を設定すべきだと思いますか?
削除された件数がほしいのならば、あらかじめ削除対象件数をSELECT文で抽出した方が良くないですか?
(該当レコードがなければそもそも削除は実行する必要はないですし。)
引用返信
編集キー/
編集
■59708
/ inTopicNo.5)
Re[4]: GridView削除時のAffectedRowsが-1
▲
▼
■
□投稿者/ まっさ
(50回)-(2011/06/03(Fri) 22:49:34)
■
No59697
(クエール さん) に返信
> ■
No59680
(まっさ さん) に返信
>>今回は、単純な削除クエリなのでOKなんですが、ストアドで組みたい時も多いんですが・・・
>>
>>う〜ん、ストアドでは無理なんですかね?
>
> 削除された件数がほしいのでしょうか?
> そもそも、例えば、ストアド内に、テーブルAの該当レコードを削除して、テーブルBの関連レコードを削除して、
> テーブルCを更新して...という処理を組んだ場合、e.AffectedRowsに何を設定すべきだと思いますか?
> 削除された件数がほしいのならば、あらかじめ削除対象件数をSELECT文で抽出した方が良くないですか?
> (該当レコードがなければそもそも削除は実行する必要はないですし。)
あっいえ、今回の件は問題ありません。
たしかにストアドで複数デリートしたらどの件数かわかりませんね。
きっとストアドを利用した時に−1になるのが仕様なんでしょうね。
ありがとうございました!
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-