6

(int) faultsGroup は 0 または 1 ですが、常に次のエラーが発生します: 列 'FaultGroup' を null にすることはできません

誰かが理由を教えてくれますか?構文は問題ないようです。

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();
4

1 に答える 1

4

私は約 6 か月間 MySql を使用していません (ありがたいことに 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();
于 2010-02-23T22:45:22.660 に答える