我试图根据textbox1中给出的名称创建一个表。我在以下代码中遇到错误:
Ramesh'附近的语法不正确。
此处Ramesh是文本框中的值。
string Customername = Textbox1.text
SqlCommand cmd7 = new SqlCommand("CREATE TABLE '" + CustomerName + "' (ItemCode int,Quantity int,PricePerQuantity int,Brand char(50),Discount int , DateTime datetime)",connection
答案 0 :(得分:3)
您的表名不需要单引号。
SqlCommand cmd7 = new SqlCommand("CREATE TABLE " + CustomerName + " (ItemCode int,Quantity int,PricePerQuantity int,Brand char(50),Discount int , DateTime datetime)",connection);
但奇怪的是,不要将SqlCommand
用于MySQL。使用MySqlCommand
及相关课程。
另外我会说使用参数化查询,但是因为你不能参数化列名,看起来你把它作为输入,使用强验证或使用白名单然后你把它在你的查询中。
您可以阅读:The BobbyTables culture
答案 1 :(得分:1)
从查询中的表名旁边删除'
。
string Customername = Textbox1.text
SqlCommand cmd7 = new SqlCommand("CREATE TABLE " + CustomerName + " (ItemCode int,Quantity int,PricePerQuantity int,Brand char(50),Discount int , DateTime datetime)",connection
答案 2 :(得分:0)
错误的直接原因是您不应将表名放入撇号中。像这样:
// put IDisposable into using
using (SqlCommand cmd7 = new SqlCommand(
// Keep SQL readable; "$" - C# 6.0 feature
$@"CREATE TABLE {Textbox1.text}(
ItemCode int,
Quantity int,
PricePerQuantity int,
Brand char(50),
Discount int,
DateTime datetime)",
connection)) {
cmd7.ExecuteNonQuery(); // execute and create the table
}