为什么在尝试截断 MySQL 表(使用 MySQL 连接器/网络)时会出现异常?我试图给表名加上一个参数。
这是我正在执行的代码:
var connectionString = "Server="+_server+";Uid="+_user+";Pwd="+_password+";Database="+_database+";";
try
{
using (var conn = new MySqlConnection(connectionString))
{
conn.Open();
const string sql = "TRUNCATE TABLE @tablename"; // also tried with TRUNCATE @tablename
var cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@tablename", "test");
cmd.ExecuteNonQuery();
conn.Close();
}
}
catch (MySqlException ex)
{
Console.WriteLine(ex.ToString());
}
这是例外:
MySql.Data.MySqlClient.MySqlException (0x80004005):你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“测试”附近使用正确的语法
例如,当我尝试选择查询时,我没有任何问题。这运行良好并返回正确的数据:
conn.Open();
const string sql = "SELECT body FROM test WHERE id=@pid";
var cmd = new MySqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@pid", 1);
cmd.ExecuteScalar();
conn.Close();