关于SQl查询两个

时间:2014-08-10 08:49:14

标签: c# mysql sql sql-server

这是我在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)...我想显示我的数据,其中我的价格介于最小和最大之间 但是这段代码不起作用! 以及这个sql代码不支持存储过程的一个重要问题 我的组类型是int,我的价格是varchar(50) 请帮帮我!!!

1 个答案:

答案 0 :(得分:0)

我假设你剩下的查询工作正常。 请检查以下查询。此查询未经过测试。 如果此查询工作正常,请告诉我?

您的[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