【发布时间】:2012-09-06 03:37:59
【问题描述】:
我需要在 Sql 命令中插入一个字符串
search.CommandText = "SELECT * FROM Contacts WHERE Name like ' + @person + % + '";
在命令中使用LIKE 的正确方法是什么?
【问题讨论】:
-
你正在使用什么 rdbms? MySQL、SQLServer、..?
我需要在 Sql 命令中插入一个字符串
search.CommandText = "SELECT * FROM Contacts WHERE Name like ' + @person + % + '";
在命令中使用LIKE 的正确方法是什么?
【问题讨论】:
仅供参考!
string strQuery = "select Ac_Key from AccountDetails where (Ac_Name like '%'+@Ac_Name+'%');
SqlCommand cmb1 = new SqlCommand(strQuery);
cmb1.Parameters.AddWithValue("@Ac_Name", AccountName);
【讨论】:
"SELECT * FROM table_name like concat(@persons,'%')"
我用过。
【讨论】:
如果字段类型是 Nvarchar 使用此代码:
"select * from Contacts where name like N'%"+person+"%'"
【讨论】:
这应该可以工作
"Select * from customer where FirstName LIKE '"+TextBox1.Text + '%'+ "' ";
【讨论】:
select * from Contacts WHERE Name like '%' + '"+@person+"' + '%'
select * from Contacts WHERE Name like '%' + '"+@person+"'
select * from Contacts WHERE Name like '"+@person+"' + '%'
【讨论】:
searchPerson.CommmandText = "SELECT * FROM Contacts WHERE Name like '" + @person + "%'";
【讨论】:
person 的变量。 (巧合的是,@ 在 C# 标识符之前有效 - 幸运!)。无论哪种方式 - 您将参数化命令更改为潜在的安全风险:en.wikipedia.org/wiki/SQL_injection
searchPerson.CommandText =
"SELECT * FROM Contacts WHERE Name like @person + '%'"
【讨论】:
应该是:
SELECT * FROM Contacts WHERE Name like @person + '%'
@person 是一个参数 - 你不需要在它周围加上单引号。你只需要将它与% 连接起来,它应该有引号。
记住:
"SELECT * FROM Contacts WHERE Name like @person",并让参数值包含%(C# 中的连接更容易理解)。%、_、[ 和 ]。【讨论】:
这是你的意思吗?
searchPerson.CommandText = "SELECT * FROM Contacts WHERE Name LIKE '"+person+"%'";
【讨论】:
使用语法:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
"%" 符号可用于定义模式前后的通配符(模式中缺少字母)。
例如:
LIKE '%xy' 会得到任何以 'xy' 结尾的东西LIKE '%xy%' 会给你任何包含“xy”的东西LIKE 'xy%' 会得到任何以“xy”开头的东西【讨论】: