sql >> データベース >  >> RDS >> Mysql

MySQLの戻り値がC#コードでは常に1であるのに、ストアドプロシージャでテストする場合はそうではないのはなぜですか?

    UseAffectedRowsを設定していない限り 接続文字列オプション。デフォルトはfalseです。 。 これは を意味します :

    さらに、<コードのドキュメントから> ROW_COUNT 機能

    したがって、UPDATEユーザー ストアドプロシージャのステートメントは、実際に更新された数ではなく、クエリによって検出された行の数を返します。

    これを修正するには、次のいずれかを行います。

    1. UseAffectedRows =true;を設定します 接続文字列内。これにより、他の UPDATEが変更される可能性があります クエリ。
    2. WHEREに条件を追加します 句、例: WHERE ... AND SELLER_IMAGE_ID!=SellerImageID AND SELLER_BUSINESS_LOGO_ID!=BusinessImageID 、行が実際に変更する必要がある場合にのみ、行が検出および更新されるようにします。



    1. SQLServer待機イベント-3

    2. OracleのLikeとContains()の検索基準の違い

    3. MySQL 5、シンプルメンバーシッププロバイダー、EntityFramework5でのASP.NETMVC4の使用

    4. MySQL-2つのテーブルを結合する