6

(int) faultsGroup is 0 or 1 but i always get this error: Column 'FaultGroup' cannot be null

Does anyone tell me why? Syntax looks ok.

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();
Stecya
  • 22,896
  • 10
  • 72
  • 102
senzacionale
  • 20,448
  • 67
  • 204
  • 316
  • 1
    You should accept answers for your questions by clicking the hollow checkmark next to an answer. – SLaks Feb 23 '10 at 22:38

1 Answers1

4

I haven't used MySql for about 6 months (thankfully migrated off to Sql Server) but, try changing your @ symbols for ?'s, as if memory serves, that's the correct convention with MySql, so:

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();
Rob
  • 45,296
  • 24
  • 122
  • 150