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查询,例如,如果我想说一个值在一系列值之间?

c#中的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算子来完成。