c#中的Sql查询
本文关键字:查询 Sql 中的 | 更新日期: 2023-09-27 17:58:21
我正在C#2010 Express中编程。
我的程序中有一个SQL数据库,它的一个表名为HightAndWeightTable
,有四列。我想根据用户在上下框中的域中输入的高度,从第四列中选择一个称为Risk
的值。
因此,我在程序中的SQL查询是:
SELECT Risk
FROM HightAndWeightTable
WHERE Hight LIKE '%" + domainUpDown1.Text + "%'"
但这并没有奏效。
此外,我们如何编写一个有范围的SQL查询,例如,如果我想说一个值在一系列值之间?
首先,您遇到的一个问题是SQL注入。这篇文章已经写了很多次了,所以我在这里就不多说了。
您想将SQL查询更改为使用参数,如下所示:
using (SqlConnection conn = new SqlConnection("Server=(local);DataBase=Northwind;Integrated Security=SSPI")
{
SqlCommand cmd = new SqlCommand("SELECT Risk From HightAndWeightTable WHERE Hight LIKE '%" + @height + "%'", conn);
SqlParameter param = new SqlParameter();
param.ParameterName = "@height";
param.Value = domainUpDown1.Text;
cmd.Parameters.Add(param);
reader = cmd.ExecuteReader();
while(reader.Read())
{
//do something here:
string risk = reader["Risk"];
}
}
此外,您在查询中是否拼写正确?看起来你拼错了身高。
远至:
SELECT thing t FROM table where t.value BETWEEN lowerLimit AND upperLimit
首先,在比较我假设的数值时,您不希望使用LIKE。你可以做=或>或任何适合你比较的事情。
第二,请告诉我,你要么正在对用户输入进行验证,要么并没有真正计划使用字符串串联来构建SQL字符串(使用参数!)
第三,测距可以使用BETWEEN
算子来完成。