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

DapperMySQLの戻り値

    LAST_INSERT_ID 説明したとおりに動作しますが、最後にセミコロンが含まれていないため、前の挿入ステートメントに無関係のエラーがあります。 MySQLで構文エラーを診断する場合、エラーメッセージに含まれるSQL文字列は、通常、構文エラーの直後にあります。

    このような構文エラーをより簡単に識別できるように、読みやすくするためにステートメントを再編成することを検討してください。例:

    public void Insert(TUser member)
    {
        string sql = @"
            Insert into users
              (UserName, PasswordHash, SecurityStamp, Email, EmailConfirmed, PhoneNumber, PhoneNumberConfirmed, AccessFailedCount, LockoutEnabled, LockoutEndDateUtc, TwoFactorEnabled)
            values 
              (@name, @pwdHash, @SecStamp, @email, @emailconfirmed, @phonenumber, @phonenumberconfirmed, @accesscount, @lockoutenabled, @lockoutenddate, @twofactorenabled);
    
            select LAST_INSERT_ID();
        ";
    
        member.Id = db.Connection.ExecuteScalar<int>(sql, new
        {
          name = member.UserName,
          pwdHash = member.PasswordHash,
          SecStamp = member.SecurityStamp,
          email = member.Email,
          emailconfirmed = member.EmailConfirmed,
          phonenumber = member.PhoneNumber,
          phonenumberconfirmed = member.PhoneNumberConfirmed,
          accesscount = member.AccessFailedCount,
          lockoutenabled = member.LockoutEnabled,
          lockoutenddate = member.LockoutEndDateUtc,
          twofactorenabled = member.TwoFactorEnabled
        });
    }
    

    この回答 による 、LAST_INSERT_IDのキャストを削除できる場合もあります 最近のMySQLバージョンを実行している場合。




    1. mysqloledbドライバー

    2. SQL Serverトランザクションログ、パート1:ログの基本

    3. なぜこれが更新例として機能するのですか?

    4. 緯度経度に基づいて半径検索を実行するためのSQLクエリ