【发布时间】:2013-07-24 06:18:37
【问题描述】:
我正在尝试在数据库中插入一个问题,表中的字段为 nvarchar(max) (sql server 2008 r2)
代码如下:
Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
gc.ExecuteCommand("insert into QuestionMaster values('" & txtQuestion.Text & "','" & ViewState("ClientID") & "','" & ViewState("KioskID") & "')")
Response.Write("<script type='text/javascript' language='javascript'>alert('Question Added Sucessfully!!!')</script>")
BindGrid()
End Sub
当我插入任何字符串时:
what's your name?
然后它给我错误:
“s”附近的语法不正确。字符串')'后面的非闭合引号。
如果我只是提供字符串为:
What is your name?
那么它不会给我错误。
请帮帮我。
【问题讨论】:
-
简单修复更改为参数化查询
-
恭喜。您刚刚发现了 SQL 注入的起点 - 以及为什么应该使用参数将数据(列值)与代码(SQL is 代码分开,尽管它作为字符串嵌入到您的 VB 中)。所以去搜索参数化查询
-
这不是关于
c#,标签已删除。 -
@SonerGönül 在 c# 中的回答也对我有帮助,因为我认为问题与 sql 而不是 C# 或 vb 更相关,所以我也标记了 c#
-
M.N.S.下定决心......听起来你不知道你在说什么......我可以看到你正在挖掘的洞越来越深