Sql server 2005 我的字符串包含特殊字符';那怎么取呢?。
在我的数据库中有一个包含特殊字符“的字符串,但当我尝试获取它时,会出现一个错误,称为字符串termaination,例如:Sql server 2005 我的字符串包含特殊字符';那怎么取呢?。,sql-server-2005,Sql Server 2005,在我的数据库中有一个包含特殊字符“的字符串,但当我尝试获取它时,会出现一个错误,称为字符串termaination,例如: String temp=a'bc SELECT * FROM table where name like 'temp%' 您需要将单引号加倍,如下所示:a''bc 然后,整个查询变为 SELECT * FROM table where name like 'a''bc%' 注意:如果所讨论的模式源自用户输入,请注意(另请参见)。在T-SQL中,您可以通过将引号放在带引号
String temp=a'bc
SELECT * FROM table where name like 'temp%'
您需要将单引号加倍,如下所示:
a''bc
然后,整个查询变为
SELECT * FROM table where name like 'a''bc%'
注意:如果所讨论的模式源自用户输入,请注意(另请参见)。在T-SQL中,您可以通过将引号放在带引号的字符串中两次来转义引号,例如:
SELECT * FROM table where name like 'a''bc%'
您还可以使用参数化查询而不是内联SQL
DECLARE @var NVARCHAR(50)
SET @var = ISNULL('%' + your_variable_here + '%', '')
SELECT * FROM [dbo].[TableName] where [SomeColumn] like @var
如果您是从客户端代码(例如c#)调用此函数,则使用参数化查询:
string temp = "a'bc";
string sql = "SELECT * FROM table WHERE name LIKE @Name + '%'";
using (var cn = new SqlConnection(" connection string here "))
using (var cmd = new SqlCommand(sql, cn))
{
cmd.Parameters.Add("@Name", SqlDbTypes.NVarChar, 50).Value = temp;
cn.Open();
using (var rdr = cmd.ExecuteReader())
{
//do something with your data reader
}
}
你是如何试图查询它的?从客户端代码?从存储过程中的T-SQL?使用PHP?您的代码提示c#/vb.net