当前位置: 首页 > 面试题库 >

C#MySqlParameter问题

松琦
2023-03-14
问题内容

(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(感谢迁移到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();


 类似资料:
  • 我对C#中的backgroundworker有一个问题。我正在编码一个dll文件。 这是我在VS2019中的类库(.NET Framework)类型项目中的代码: 当我使用即时窗口调用方法时,后台工作者的方法中的命令不会运行。逐行对问题进行解块显示方法正在运行,但它没有以某种方式调用RunworkerAsync。 *Update1:启动线程也不起作用:

  • 我正在纠结于一个基本的浮点精度问题。问题就在这里: 运行代码得到“否”

  • 亲爱的读者,这些C# Interview Questions专门设计用于让您了解在面试C#时可能遇到的问题的本质。 根据我的经验,很好的面试官在你的面试中几乎不打算问任何特定的问题,通常问题从这个主题的一些基本概念开始,然后他们继续基于进一步的讨论和你回答的问题 - 什么是C#? C#是由Microsoft开发的一种现代的,通用的,面向对象的编程语言。 C#专为公共语言基础结构(CLI)而设计,它

  • 现在这种情况仍然发生,但很少发生,就像100次碰撞中有1次发生,而在100次碰撞中有20次发生之前

  • 本文向大家介绍C和C++混合编程问题,包括了C和C++混合编程问题的使用技巧和注意事项,需要的朋友参考一下 分析以下一段代码: 调用以上三个文件,编译通过,但是执行是出现以下问题: obj : error LNK2001: 无法解析的外部符号 "int __cdecl sum(int,int)" (?sum@@YAHHH@Z) E:\Programming\Grapic\test\Debug\te

  • C#中的override本身是否具备【重写】的定义,还是说【重写】的定义只有关键字abstract和virtual才有 多层继承后,我不知道子类override的是父类中的override方法还是基类中的abstract方法