tags:

views:

146

answers:

1

(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();
A: 

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
Actually, the '@' symbol works fine, at least for the MySQL ADO.Net connector (which I assume the OP is using).
Michael Todd
problem was in version of ado.net connector. i was using 5.1.7 now i am using v6.Thx all for help
senzacionale