C# 类sql查询问题
我试图获取数据,它在开始、中间或结尾都有描述关键字。 以下是我的疑问C# 类sql查询问题,c#,sql,C#,Sql,我试图获取数据,它在开始、中间或结尾都有描述关键字。 以下是我的疑问 like '%" + description + "' or '" + description + "%' or '%" + description + "%' 问题是它正在返回不相关的数据 例如,如果我在描述中给出了“as”,那么它在结果中也会选择“cake” Description ------------------------------------------------------------ asd asdas
like '%" + description + "' or '" + description + "%' or '%" + description + "%'
问题是它正在返回不相关的数据
例如,如果我在描述中给出了“as”,那么它在结果中也会选择“cake”
Description
------------------------------------------------------------
asd
asdasd
cake
Naw
Tast
ad
放
LIKE '%" + description + "%'
顺便说一下,如果有多个“or”语句,则必须重写列名和比较器
mycolumn like '%" + description + "' or
mycolumn like '" + description + "%' or
mycolumn like '%" + description + "%'
但在这种情况下,不需要这样做
您还可以查看准备好的语句 只要把
LIKE '%" + description + "%'
顺便说一下,如果有多个“or”语句,则必须重写列名和比较器
mycolumn like '%" + description + "' or
mycolumn like '" + description + "%' or
mycolumn like '%" + description + "%'
但在这种情况下,不需要这样做
您还可以查看准备好的语句 你只能写
like '%" + description + "%'
在此,您可以检索所需的数据,因为它获取开始的数据,在中间串并用该字符串完成,而不使用或语句。 你只能写
like '%" + description + "%'
在此,您可以检索所需的数据,因为它获取开始的数据,在中间串并用该字符串完成,而不使用或语句。 既然你有了这个
'%'+description+'%'
为什么不直接
SELECT..FROM...WHERE columnName LIKE '%" + description + "%'"
购买您的查询易受SQL注入攻击
。改用参数
"
SELECT...
FROM...
WHERE columnName LIKE @description"
然后在查询中定义参数
command.Parameters.AddWithValue("@description", "%" + description + "%")
因为您有这个
'%'+description+'%'
为什么不直接
SELECT..FROM...WHERE columnName LIKE '%" + description + "%'"
购买您的查询易受SQL注入攻击
。改用参数
"
SELECT...
FROM...
WHERE columnName LIKE @description"
然后在查询中定义参数
command.Parameters.AddWithValue("@description", "%" + description + "%")
为什么不坚持使用
'%“+description+'%'
像“%”+description+“%'”这样的不够吗?以description关键字start或中间结束。使用简单的查询“where description like%$description%”好的,我编辑了我的查询,除了一个问题,它工作得很好,就是我现在给出了“as”,它只选择了两条记录“ad”,“asdasd”。你能显示完整的查询代码吗?你为什么不坚持使用“%”+description+“%”
是否像“%”+description+“%”
足够了?以description关键字开头或中间结束。使用简单的查询“where description like%$description%”好的,我编辑了我的查询,除了一个问题,它工作得很好,就是我现在给出了“as”,它只选择了两条记录“ad”,“asdasd”。Y它正在选择“ad”您能显示完整的查询代码吗?实际上我在报告中使用了它,所以我不能使用上面的。好的,只使用一个条件,因为像“%”“+”description+“%”这样的columnName同时处理起始字符和结束字符。
实际上我在报告中使用了它,所以我不能使用上面的条件。好的,只使用一个条件,因为像“%”“+description+“%”这样的columnName同时处理起始字符和结束字符。解决了我的问题,但仍然有一个问题您现在有什么问题?好的,我编辑了我的查询,它可以正常工作,除了一个问题,那就是我现在给出了“as”,它只选择了两条记录“ad”和“asdasd”。Y它正在选择“ad”(描述如“%”“+description+”%”和(e_date>=”“+fromdate+”“还有你有asd和asdasd的e_日期…如果你输入的是正确的asd和asdasd…你还没有解决我的问题,但仍然有一个问题你现在有什么问题?好的,我编辑了我的查询,它工作正常,除了一个问题,那就是我现在给了”as“它只选择了两个记录“ad”,“asdasd”。Y它选择了“ad”(像“%”“+description+“%”这样的描述)和(e_-date>=”“+fromdate+””和e_-date您有asd和asdasd…如果您键入的是正确的,则使用asd和asdasd。您还没有看到--我正在使用此is报告,所以(OleDbDataAdapter)我不知道如何在此中进行参数化我正在使用此is报告,所以(OleDbDataAdapter)我不知道如何在这种情况下进行参数化