mysql을 사용하는 닷퍼 닷넷, 치명적이거나 모두 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