C#了MySQLParameter问题问题、MySQLParameter

2023-09-02 21:12:11 作者:乱世小魔女

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

The type or namespace name MySqlParameter could not be found Are you missing an assembly referen u014401637的博客 CSDN博客

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