在mySQL中创建表时出错
本文关键字:出错 创建 mySQL | 更新日期: 2023-09-27 18:12:01
我尝试了你的一些建议,但仍然是同样的错误。你有一个错误在你的SQL语法;查看与MySQL服务器版本对应的手册,了解在第1行"' (size int(5))'"附近使用的正确语法
下面是我的代码: try{
query = "CREATE TABLE @name (size int(5))";
MySqlCommand cmd = new MySqlCommand(query, con);
cmd.Parameters.Add("@name", MySqlDbType.VarChar, 30).Value = txtboxName.Text;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception)
{
throw;
}
finally
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
我认为您打算使用反引号' '来转义表名,但使用单引号代替。
query = "CREATE TABLE `"+ txtboxName.Text + "`(size int(5))";
我会尝试添加转义序列到txtboxName.Text
。有一些特殊的字符,可以打破你的SQL语句。
表名和列定义之间缺少空格
query = "CREATE TABLE "+ txtboxName.Text + " (size int(5))";
|
put space here
sql注入…不要使用内联参数。下面是我所知道的一些最佳实践的示例代码。但是不能对表名使用参数。
public void CreateTable(string tblName)
{
using (var con = new MySqlConnection(MySqlConnectionString))
{
using (var cmd = new MySqlCommand(String.Format("CREATE TABLE {0} (size int(5))",tblName), con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
}