【问题标题】:about SQl query two关于SQL查询二
【发布时间】:2014-08-10 17:36:15
【问题描述】:

这是我在 c# 中的代码:

objConnection = new SqlConnection("server = localhost;initial catalog = instrument;integrated security = true");
objDataAdapter = new SqlDataAdapter();
objDataSet = new MyDataSet();
objDataAdapter.SelectCommand = new SqlCommand("select * from kala where [I_Group] like '%'+ @I_Group and [I Price] between @min and @max", objConnection);
objDataAdapter.SelectCommand.Parameters.Add("@I_Group", SqlDbType.VarChar).Value = cmbSearch.SelectedIndex + 1;
objDataAdapter.SelectCommand.Parameters.Add("@min", SqlDbType.VarChar).Value = lblMinGrade.Text;
objDataAdapter.SelectCommand.Parameters.Add("@max", SqlDbType.VarChar).Value = lblMaxGrade.Text;
objDataAdapter.Fill(objDataSet, "kala");
dataGridView1.DataSource = objDataSet;
dataGridView1.DataMember = "ITable";

我在 sql server 中创建了一个表,名称为 (ITable),该表包括 2 个字段(I Group,I Price)...我想显示我的数据,其中 I Price 介于 min 和 max 之间 但是这段代码不起作用!!! 以及存储过程不支持此 sql 代码的一个重要问题 我的组类型是 int 我的价格是 varchar(50) 请帮帮我!!!

【问题讨论】:

  • "this code not work" 并没有给出任何问题的迹象——而且你的最后一句话真的没有意义。请澄清您的问题。
  • 你的第一个条件是工作,即 [I_Group] like '%'+ @I_Group
  • 请再澄清一下我的波斯老兄,你确定你的查询是正确的吗?
  • 您使用的是 SQL 还是 MySQL?你已经用两者标记了它,它们是不同的数据库。

标签: c# mysql sql sql-server


【解决方案1】:

我假设您剩余的查询工作正常。 请检查以下查询。此查询未经测试。 请让我知道此查询是否正常工作?

您的 [I Price] 列的数据类型是 VARCHAR(50)。请将其更改为 int。 我认为这将是您查询的主要问题。

SQl 无法比较 String (varchar) 格式的数据。

如果您想比较 SQL 中的数据,那么您的数据应采用以下格式:

Integers,
Dates etc...

这里是查询

SELECT
* 
FROM
kala 
where 
[I_Group] like '%'+ @I_Group 
AND [I Price] <= @min 
AND [I Price] >= @max

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多