Asp.net中内联查询中的SQL查询问题

0 sql sql-server asp.net sql-server-2005 sql-server-2008

我的sql表结构是这样的

ID  DataName
1   Lipsum lorem 
3   lipsum's lorem
Run Code Online (Sandbox Code Playgroud)

我在asp.net中的内联查询就是这样

select * from table where DataName like 'lipsum's lorem'
Run Code Online (Sandbox Code Playgroud)

它给出了以下错误:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 's'.
Msg 105, Level 15, State 1, Line 1
Unclosed quotation mark after the character string ''.
Run Code Online (Sandbox Code Playgroud)

我不想创建一个存储过程来防止这种情况,我希望使用内联查询来解决这个问题.

Chr*_*ver 5

你需要摆脱''lipsum's lorem'

'lipsum''s lorem'

但真正的解决方法是使用参数化查询,以防止SQL注入.

SqlCommand.CommandText = "SELECT * FROM Table WHERE DataName = @DataName";

在命令对象中,为@DataName添加一个参数及其值.

SqlCommand.Parameters.AddWithValue("@DataName", Value);