gpt4 book ai didi

c# - where 语句在 C# 中无法正常工作

转载 作者:行者123 更新时间:2023-11-29 08:06:17 25 4
gpt4 key购买 nike

我在我的 C# 应用程序中使用 MYSQL。

mysql 表中有一些字符串值,并且有一个客户端可以在其中写入的文本框,然后我使用此语句来显示结果:

"SELECT ID,METER FROM DB.TABLE1 WHERE METER >= '" +TEXT1.text.tostring+"'";  

但是例如,如果客户端在该文本框中写入 400,则结果如下:

50,400,500,600,50,500  

但我们知道 50 不会大于 400!!!
然后我使用了这段代码:

"SELECT ID,METER FROM DB.TABLE1 WHERE METER <= '" +TEXT1.text.tostring+"'";  

如果客户端在该文本框中写入 400,结果如下:

300,150,100,250;  

50 未显示!!!

你能帮我看看我该怎么办吗???

最佳答案

当您将它们视为字符串时,50 比 400 “更大”,所以我怀疑这就是您正在做的事情。

首先:永远、永远、永远不要像这样构建 SQL。它很容易受到SQL injection attacks的影响。 ,它会导致容易出错的转换,并且使您的代码更难以阅读。

相反,请使用参数化 SQL。在这种情况下,您需要类似以下的 SQL:

SELECT ID,METER FROM DB.TABLE1 WHERE METER >= @Parameter

然后在参数集合中设置@Parameter参数 - 首先将其解析为整数(或任何适合您尝试表示的值的类型)。

下一步:检查架构中 METER 的类型。如果它是 varchar 或某种类似的文本类型,您需要修复它。如果您想将值视为数字,它应该是合适的数字类型。

关于c# - where 语句在 C# 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22680329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com