【问题标题】:C# Can't figure out what's wrong with my MySql command string (syntax error)C# 无法弄清楚我的 MySql 命令字符串有什么问题(语法错误)
【发布时间】:2016-05-10 04:24:19
【问题描述】:

我正在使用 MySql.Data 库来访问我的 MySql 数据库,但在我的一个表中输入一行时遇到了一些困难。有人可以检查我在这里提供的内容并指出问题所在吗?

以下是 MySql 数据库中的列名:

ID
Full Name
Date of Birth
City
State/Province/Region
Zip Code
Country
Phone Number
Email Address
Ticket Number
Registration Time

这是我的命令字符串(当我使用 string.Format 将函数中的参数用作值时它变得完整):

string commandString = "INSERT INTO Participants (ID,Full_Name,Date_of_Birth,City,State/Province/Region,Zip_Code,Country,Phone_Number,Email_Address,Ticket_Number,Registration_Time) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}');";

这是异常消息:

您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 靠近 ''州/省/地区',Zip_Code,Country,Phone_Number,Email_Address,Ticket_Numbe' 在第 1 行

提前致谢!

【问题讨论】:

  • 您为什么将列命名为State/Province/Region?可能发生的情况是您在其中一列中得到了一个撇号。
  • State/Province/Region 使用反引号 (ALT+096)

标签: c# mysql exception syntax-error


【解决方案1】:

尝试转义 State/Province/Region 列的名称,方法是用反引号 (`) 将其括起来。请参阅here 了解更多信息。

另外,您正在尝试存储格式化字符串而不调用 String.Format

试试这样的:

string commandString = String.Format("INSERT INTO Participants (ID,Full_Name,Date_of_Birth,City,`State/Province/Region`,Zip_Code,Country,Phone_Number,Email_Address,Ticket_Number,Registration_Time) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}');",
                                     value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10);

只需将value0value1 等变量替换为您的值即可。

【讨论】:

  • 这是mysql,不是ms sql或ms访问。
猜你喜欢
  • 2022-07-23
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多