这是我在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) 请帮帮我!!!
答案 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