(INT)faultsGroup为0或1,但我总是得到这个错误:列'FaultGroup不能为空。
有没有人告诉我为什么?语法看起来确定。
的MySqlCommand cmdAdd =新的MySqlCommand(INSERT INTO故障(+
FaultGroup,文本,日期,IP+
)VALUES(+
@FaultGroup,@Text,@date,@IP+
),康涅狄格州);
了MySQLParameter paramFaultGroup =新了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 =新的MySqlCommand(
INSERT INTO故障(FaultGroup,文字,数据,IP)
+VALUES(?FaultGroup,?文本,?日期?IP),
康恩);
了MySQLParameter paramFaultGroup =新了MySQLParameter(FaultGroup?,MySqlDbType.Int32);
FaultsGroup faultsGroup =(FaultsGroup)Enum.Parse(typeof运算(FaultsGroup),myFault.FaultGroup);
paramFaultGroup.Value =(INT)faultsGroup;
cmdAdd.Parameters.Add(paramFaultGroup);
cmdAdd.ExecuteNonQuery();
(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();
解决方案
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();