【发布时间】:2021-04-23 09:48:09
【问题描述】:
当我执行这段代码时,我得到一个错误
'@ate'._ 附近的语法不正确,用户未处理异常
请帮忙。
string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
dat = "h1";
SqlCommand ren = new SqlCommand();
StringBuilder sbcomand = new StringBuilder("create table @ate (rno varchar, stat bit)");
SqlParameter param = new SqlParameter("@ate",dat);
ren.Parameters.Add(param);
ren.CommandText = sbcomand.ToString();
ren.CommandType = CommandType.Text;
ren.Connection = con;
con.Open();
ren.ExecuteNonQuery();
con.Close();
}
【问题讨论】:
-
完整阅读异常 - 到目前为止没有帮助......除此之外,您还可以添加一个 try/catch 块,最好使用 finally 来清理和关闭连接。
-
获取您的 SQL 并在 SSMS 中独立测试它 - 您会发现它无效。此外,您确实希望避免使用字符串连接来执行 SQL,否则您将结交新朋友Little Bobby TablesAKA SQL 注入攻击。如果您必须执行那种动态 SQL,请将其封装在存储过程中。
标签: c# sql-server parameters