C#MySqlParameter问题

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

我还没有使用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();