sen*_*ale 5 .net c# mysql mysql-parameter
(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();
Run Code Online (Sandbox Code Playgroud)
我已经有大约 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();
Run Code Online (Sandbox Code Playgroud)