我需要将一个字符串插入到Sql命令中。
search.CommandText = "SELECT * FROM Contacts WHERE Name like ' + @person + % + '";
在命令中使用 LIKE
的正确方式是什么?
应该是:
SELECT * FROM Contacts WHERE Name like @person + '%'
@person
是一个参数 - 你不需要在它周围加上单引号。你只需要将其与 %
连接,而 %
应该有引号。
请记住:
"SELECT * FROM Contacts WHERE Name like @person"
,并且参数值中包含 %
(在 C# 中连接更简单易懂)。%
、_
、[
和 ]
。使用语法:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
"%"
符号可用于在模式前后定义通配符(模式中缺少的字母)。
例如:
LIKE '%xy'
将获取以'xy'结尾的任何内容。LIKE '%xy%'
将获取包含'xy'的任何内容。LIKE 'xy%'
将获取以'xy'开头的任何内容。这是您的意思吗?
searchPerson.CommandText = "SELECT * FROM Contacts WHERE Name LIKE '"+person+"%'";
searchPerson.CommandText =
"SELECT * FROM Contacts WHERE Name like @person + '%'"
仅供参考!
string strQuery = "select Ac_Key from AccountDetails where (Ac_Name like '%'+@Ac_Name+'%');
SqlCommand cmb1 = new SqlCommand(strQuery);
cmb1.Parameters.AddWithValue("@Ac_Name", AccountName);
searchPerson.CommmandText = "SELECT * FROM Contacts WHERE Name like '" + @person + "%'";
@
是有效的 - 真幸运!)无论哪种方式 - 将参数化命令更改为潜在的安全风险:http://en.wikipedia.org/wiki/SQL_injection - Kobiselect * from Contacts WHERE Name like '%' + '"+@person+"' + '%'
select * from Contacts WHERE Name like '%' + '"+@person+"'
select * from Contacts WHERE Name like '"+@person+"' + '%'
这应该可以工作
"Select * from customer where FirstName LIKE '"+TextBox1.Text + '%'+ "' ";
"select * from Contacts where name like N'%"+person+"%'"
"SELECT * FROM table_name like concat(@persons,'%')"
我用过它。