我有下一个代码(在堆栈溢出处找到):
string [] arr = {"One","Two","Three"};
var target = "One";
var results = Array.FindAll(arr, s => s.Equals(target));
此代码适用于在数组中搜索字符串...我需要在 sql 列中查找字符串。
假设我有一个表(“姓名”),我想找到“Jhon”..我该怎么做?
我不需要连接字符串或整个方法,这是我知道的,但我想不出在 sql 表中搜索特定字符串的方法。
很高兴看到搜索版本:“Jh”,如果有,它会找到“Jhon”...
最佳答案
如果目标是用户提供的,那么可以避免 sql 注入(inject)
string connectionString= ...
string target="jh";
using (var conn=new SqlConnection(connectionString)) {
conn.Open();
using (var cmd=conn.CreateCommand()) {
cmd.CommandText="select Name from Names where Name like '%'+@value+'%'";
cmd.Parameters.AddWithValue("@value",target);
using (var reader=cmd.ExecuteReader()) {
while (reader.Read()) {
Console.WriteLine(reader[0]);
}
}
}
}
- 对包含使用
like '%'+@value+'%'
- 使用
like @value+'%'
开始于 - 使用
like '%'+@value
作为结尾
关于c# - 在 SQL 列中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063919/