【问题标题】:Incorrect syntax near 's'. Unclosed quotation marks after the character string ')''s' 附近的语法不正确。字符串 ')' 后面的非闭合引号
【发布时间】:2017-12-11 18:57:05
【问题描述】:

我正在使用 asp.net 和内置数据库创建一个网站,我正在尝试解决这个错误 2 小时。我在查询中使用字符串连接。 原始查询: 插入帐户持有人值('Yash','Gadhvi','MJShinichi','你最喜欢的演员/女演员是谁?','Yui Aragaki');

      String MyCommand = "insert into AccountHolder values('  "+FNameBox.Text+"  ','  "+LNameBox.Text+"  ','  "+UName.Text+"  ','  "+PassMe.Text+"  ','  "+Qs.Text+"  ','  "+As.Text+"  ')";
    SqlCommand adder = new SqlCommand(MyCommand,sqlcon);
    sqlcon.Open();
    int exe = adder.ExecuteNonQuery();
    sqlcon.Close();

不能使用参数化查询,因为没有过程,除了我已经尝试过所有的东西('和“之间的空格用于分隔单引号和双引号)。我在互联网上搜索过但它没有多大帮助....它给我的最好的是编译错误。

【问题讨论】:

  • 您确实应该使用参数化查询。除此之外,您可以打印原始插入语句并将其包含在您的问题中吗?
  • 是的,您可以而且应该使用参数化查询。
  • 我尝试手动将数据插入表中,并且成功了。插入帐户持有人值('Yash','Gadhvi','MJShinichi','你最喜欢的演员/女演员是谁?','Yui Aragaki');
  • 如何在我的代码中使用参数化查询?

标签: sql asp.net visual-studio-2012


【解决方案1】:

为此替换您的代码:

String MyCommand = "insert into AccountHolder values(@FNameBox, @LNameBox, @UName, @PassMe, @Qs, @As)";
SqlCommand adder = new SqlCommand(MyCommand, sqlcon);
adder.Parameters.AddWithValue("@FNameBox", FNameBox.Text);
adder.Parameters.AddWithValue("@LNameBox", LNameBox.Text);
adder.Parameters.AddWithValue("@UName", UName.Text);
adder.Parameters.AddWithValue("@PassMe", PassMe.Text);
adder.Parameters.AddWithValue("@Qs", Qs.Text);
adder.Parameters.AddWithValue("@As", As.Text);   
sqlcon.Open();
int exe = adder.ExecuteNonQuery();
sqlcon.Close();

如果您坚持不带参数继续插入,请检查您的数据,您可能在数据中包含 '。

【讨论】:

  • 对不起,我已经修正了这个例子。
  • 不,遗憾的是,它仍然存在,它仍然显示 errr。我需要包含头文件吗?
  • 编译错误消息:“字符串”不包含“参数”的定义,并且找不到接受“字符串”类型的第一个参数的扩展方法“参数”(您是否缺少使用指令还是程序集引用?)第 22 行:MyCommand.Parameters.AddWithValue("@FName",FNameBox.Text);
  • 对不起,我的错,你的变量名让我很困惑 :) 我又修好了。
猜你喜欢
  • 2023-03-25
  • 1970-01-01
  • 2015-03-20
  • 2011-02-10
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多