mysqlを使ったDapperドットネット、致命的か、またはすべてをNULLとして挿入する

c# dapper mysql

質問

私のコード

string query = @"INSERT INTO representative_dev.representative_users
                                (Username, Password, FullName, 
                                HomePhone, PhoneToCall, 
                                CompanyEmail, PersonalEmail, 
                                IsManager) 
                            VALUES (@Username, @Password, @FullName, 
                                    @HomePhone, @PhoneToCall,
                                    @CompanyEmail, @PersonalEmail, 
                                    @IsManager);";
            mycon.Open();
            int cnt = mycon.Execute(query,
                new
                {
                    txtUsername,
                    txtPassword,
                    txtFullName,
                    txtHomePhone,
                    txtPhoneToCall,
                    txtCompanyEmail,
                    txtPersonalEmail,
                    cbxIsManager
                });
            mycon.Close();

それは私に "致命的なエラーが発生しましたコマンド実行中に発生しました。

別のケースで別の挿入クエリを実行すると、それはうまくいきます、違うのはここでは私はboolとしてcbxIsManagerを持っていて、dbはtinyint(1)であり、他のケースではすべてが文字列です

私が "Allow User Variables = true;"を追加すると私は例外を取得しないでくださいが、dbではすべての値はnullです(値が取得されていることがチェックされています)

このプロジェクトでASP.NETを使用し、もう一方のコンソールでFW4、mysqlは6.somthing(think 3)他のコード

        string query = @"INSERT INTO representative_dev.potencial_contact
                    (Name, Company_ID, Phone, Email, Department, Notes, SuperFriend, UpdateDate) 
                    VALUES (@Name, @Company_ID, @Phone, @Email, @Department, @Notes, @SuperFriend, @UpdateDate);";
        mycon.Open();
        int cnt = mycon.Execute(query,
            new
            {
                con.Name,
                con.Company_ID,
                con.Phone,
                con.Email,
                con.Department,
                con.Notes,
                con.SuperFriend,
                con.UpdateDate
            });
        mycon.Close();

どんな助けもありがとう

トゥクス、アリエル

編集:これはいつそれが働いた

            string query = @"INSERT INTO representative_dev.representative_users
                                (Username, Password, FullName, 
                                HomePhone, PhoneToCall, 
                                CompanyEmail, PersonalEmail, 
                                IsManager) 
                            VALUES ('" + txtUsername + @"', '" + txtPassword + @"', '" + txtFullName + @"', 
                                    '" + txtHomePhone + @"', '" + txtPhoneToCall + @"',
                                    '" + txtCompanyEmail + @"', '" + txtPersonalEmail + @"', 
                                    " + cbxIsManager + ");";

            int cnt = mysql.ExecuteInsert(query);

私はdapperを使いたいので、まだ助けを探しています....

人気のある回答

@ sを:のように置き換えてみてください。それは私のために働くように思えた:

string query = @"INSERT INTO representative_dev.representative_users 
                 (Username, Password, FullName, HomePhone, PhoneToCall, CompanyEmail,
                  PersonalEmail, IsManager) VALUES (:Username, :Password, :FullName,
                  :HomePhone, :PhoneToCall, :CompanyEmail, :PersonalEmail, :IsManager);";


ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow