gpt4 book ai didi

C# 在 mysql 查询表名的参数中转义字符

转载 作者:行者123 更新时间:2023-11-30 00:02:29 35 4
gpt4 key购买 nike

我正在制作一个简单的 mysql 客户端来发送一些数据。我需要我的表格将日期作为以下格式的名称:2014-07-04

我知道由于 (-),我必须将它们用反引号 (`) 括起来。这是我的代码:

    public bool Update()
{
try
{
MySqlCommand cmd = connection.CreateCommand();
cmd.Parameters.AddWithValue("@TbName", "");
foreach (Employee emp in this.employees)
{
foreach(shift singleShift in emp.shifts)
{
cmd.CommandText = "CREATE TABLE IF NOT EXISTS @TbName (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(40), aStart VARCHAR(5), aStop VARCHAR(5), Lunch VARCHAR(5), B1 VARCHAR(5), B2 VARCHAR(5), B3 VARCHAR(5));";
cmd.Parameters["@TbName"].Value = singleShift.aDate; // singleShift.aDat = 2014-07-24
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
return false;
}
return true;
}

如果我使用此代码,我会收到此错误:

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL       server version for the right syntax to use near ''2014-06-29' (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(40), aSta' at line 1

所以我尝试了几种方法来解决这个问题,例如使用“`”连接参数,但出现此错误:

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''\`2014-06-29\`' (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(40), ' at line 1

并使用 MySqlHelper.EscapeString 我收到此错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''\\\`2014-06-29\\\`' (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(40), ' at line 1

我知道我的表应该以其他方式命名,但在当前上下文中这是不可能的。我该如何解决这个问题?

最佳答案

create a table with date name

不,您不能使用日期作为表名,尤其是使用 - 时。换成别的东西。

关于C# 在 mysql 查询表名的参数中转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24902519/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com