【问题标题】:c# - adding label value to query [closed]c# - 为查询添加标签值[关闭]
【发布时间】:2017-08-30 10:59:48
【问题描述】:

我想添加一个数字的标签值将它添加到查询我尝试下面的查询,但它返回一个数据不匹配。

OleDbDataAdapter db = new OleDbDataAdapter("SELECT * FROM mytable WHERE Count <= '" + label3.Text + "'", con);

【问题讨论】:

  • 您能否添加您收到的确切错误?另外,我建议创建参数化查询而不是连接字符串。
  • 1.去掉撇号 2.count是保留字,放在括号里
  • 错误是Data type mismatch in criteria expression
  • 您能否提供有关在哪里可以找到您的应用的信息? :D 开个玩笑...无论如何,您应该查看参数化查询 - 请参见此处:msdn.microsoft.com/de-de/library/…

标签: c# sql .net winforms


【解决方案1】:

更新我很惊讶,这对你有用,因为这里有一些问题。声明,例如:

SELECT * FROM mytable WHERE Count(*) <= 3

有点奇怪,因为没有任何类型的分组。

要计算表中的行数,您可以使用以下语句:

SELECT Count(*) FROM mytable

按照我的理解,就你的情况而言,声明;

SELECT Count(*) FROM mytable HAVING COUNT(*) <= 3;

仅当表中的行数少于或等于 3 时才会返回行。


原创

跳过'。在这种情况下,您指的是实际数字而不是字符串。

new OleDbDataAdapter("SELECT * FROM mytable WHERE Count(*) <= " + label3.Text, con);

正如@DmitryBychenko 所说,您需要计算“某物”。

【讨论】:

  • 不够。看看上面的评论
  • 另外,只是一个建议,如果 OP 坚持继续使用字符串连接,最好使用new OleDbDataAdapter(String.Format("SELECT * FROM mytable WHERE [Count] &lt;= {0};", int.Parse(label3.Text).ToString()), con) 之类的东西,但最好坚持使用参数化查询。跨度>
  • HAVING COUNT(1) ...,而不是 where - 让 Ansi 兼容
  • 其实我的回答完全没有意义....
  • 应该提供意义的是问题(查询的目标是什么)。作为没有语法错误的查询,我看不到任何更好的答案
【解决方案2】:

假设 InventoryCount 是一个整数,您将一个 int 与一个字符串进行比较。

正确的查询是:

OleDbDataAdapter db = new OleDbDataAdapter("SELECT * FROM DropsSyrupSusppension WHERE InventoryCount <= " + label3.Text, con);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-10
    • 2021-03-11
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多