Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类sql查询问题_C#_Sql - Fatal编程技术网

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)我不知道如何在这种情况下进行参数化