C # MySqlParameter проблема - PullRequest
       24

C # MySqlParameter проблема

5 голосов
/ 24 февраля 2010

(int) faultsGroup равен 0 или 1, но я всегда получаю эту ошибку: столбец 'FaultGroup' не может быть нулевым

Кто-нибудь говорит мне, почему? Синтаксис выглядит нормально.

MySqlCommand cmdAdd = new MySqlCommand("INSERT INTO Faults (" +
        "  FaultGroup, Text, Date, IP" +
        ") VALUES (" +
        "  @FaultGroup, @Text, @Date, @IP" +
        ")", conn);

MySqlParameter paramFaultGroup = new MySqlParameter("@FaultGroup", MySqlDbType.Int32);
FaultsGroup faultsGroup = (FaultsGroup) Enum.Parse(typeof (FaultsGroup), myFault.FaultGroup);
paramFaultGroup.Value = (int) faultsGroup;
cmdAdd.Parameters.Add(paramFaultGroup);

cmdAdd.ExecuteNonQuery();

1 Ответ

4 голосов
/ 24 февраля 2010

Я не использовал MySql около 6 месяцев (к счастью, перенес на Sql Server), но попробуйте изменить ваши символы @ на?, Как будто память служит, это правильное соглашение с MySql, поэтому:

MySqlCommand cmdAdd = new MySqlCommand(
       "INSERT INTO Faults (FaultGroup, Text, Date, IP)"
       + " VALUES (?FaultGroup, ?Text, ?Date, ?IP)",
       conn);

MySqlParameter paramFaultGroup = new MySqlParameter("?FaultGroup", MySqlDbType.Int32);
FaultsGroup faultsGroup = (FaultsGroup) Enum.Parse(typeof (FaultsGroup), myFault.FaultGroup);
paramFaultGroup.Value = (int) faultsGroup;
cmdAdd.Parameters.Add(paramFaultGroup);

cmdAdd.ExecuteNonQuery();
...