C# MySqlParameter problem

10,364

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();
Share:
10,364
senzacionale
Author by

senzacionale

Updated on August 20, 2022

Comments

  • senzacionale
    senzacionale over 1 year

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