只看:
(来源:https://xkcd.com/327/)
这个SQL做了什么:
Robert'); DROP TABLE STUDENTS; --
Run Code Online (Sandbox Code Playgroud)
我知道这两个'并且--是用于评论,但是这个词也没有DROP被评论,因为它是同一行的一部分?
在查询1和2中,文本框中的文本都插入到数据库中.这里参数化查询的意义是什么?
1.> -------------
SqlCommand cmd = new SqlCommand("INSERT INTO dbo.Cars " +"VALUES(@TagNbr);" , conn);
cmd.Parameters.Add("@TagNbr", SqlDbType.Int);
cmd.Parameters["@TagNbr"].Value = txtTagNumber.Text;
Run Code Online (Sandbox Code Playgroud)
2.> --------------
int tagnumber = txtTagNumber.Text.ToInt16(); /* EDITED */
INSERT into Cars values(tagnumber.Text); /* then is it the same? */
Run Code Online (Sandbox Code Playgroud)
此外,在这里我将使用正则表达式验证来停止插入非法字符.
我正在尝试使用此查询更新数据库:
string query = "UPDATE pagine SET titolo= '" + pa.titolo + @"', contenuto = '" + pa.contenuto + @"' WHERE id= " + pa.id;
Run Code Online (Sandbox Code Playgroud)
我无法让它工作。更新 mdb 数据库表中提供了更多详细信息
问题可能是我在标题和内容中有一些撇号。我尝试使用 Regex.Escape 但它只是在内容中添加了大量的 \\\ 。
有什么办法可以转义 ASP.NET 中的 ' 和 " 字符?
注意:因为我是意大利人,所以我对变量使用意大利语名称,但我在昨天发布的另一个问题中将它们翻译为更好的清晰度。