C# 如何从代码隐藏文件比较(小于或等于)C中的两个sql列

C# 如何从代码隐藏文件比较(小于或等于)C中的两个sql列,c#,asp.net,sql-server,tsql,C#,Asp.net,Sql Server,Tsql,我一直在比较combobox值和SQL列。我正在尝试用C从VS2010开始做这件事。我使用的是SQLServer2008 请在下面找到我的SQL表 Rings NR Name Dia ======================= 10 12 a 15 10 24 b 18 10 15 c 21 10 9 d 24 10 7 e 15 10

我一直在比较combobox值和SQL列。我正在尝试用C从VS2010开始做这件事。我使用的是SQLServer2008

请在下面找到我的SQL表

Rings  NR     Name  Dia
=======================
10     12     a     15  
10     24     b     18  
10     15     c     21  
10     9      d     24  
10     7      e     15  
10     19     f     18  
10     33     g     24  
10     36     h     13  
我试图比较Rings列和NR列的值

我的SQL查询如下

select * from tblData  where Dia=15 and (Rings<=NR)
我能够在SQL中成功地运行此查询并获得所需的结果,但我在C中无法实现这一点。如何比较C中的两列

我的C代码是:

 string connectionString = ConfigurationManager.ConnectionStrings["QuoteProjectConnectionString"].ConnectionString;
 using (SqlConnection connection = new SqlConnection(connectionString))
 using (SqlCommand command = connection.CreateCommand())
 {
     {
         try
         {
            int a = Convert.ToInt32(cmbbx.SelectedItem.Text);
            command.CommandText = "Update tblData set Rings= " + 
                                     cmbbxRings.SelectedItem.Text+" ";
            connection.Open();
            command.ExecuteNonQuery(); 
            command.CommandText = "(select * from tblData where Dia=" + 15 +
                                     " and NR="+(a)<="NR"")";
            command.ExecuteNonQuery(); 
         }
         catch (SqlException ex)
         {
         }
我正在努力用C语言编写查询的这一部分:

 (NR="+(a)<="NR) 

首先,应该使用用户参数来避免sql注入。尝试执行以下更改,这将解决您的问题,并将使用更好的方法从C执行查询,从而避免Sql注入

替换代码的这一部分:

command.CommandText = "(select * from tblData where Dia="+15+" and NR="+(a)<="NR"")";
使用此代码:

command.CommandText = "select * from tblData where Dia=@Dia and NR<=@NR";
command.Parameters.Add(new SqlParameter("@Dia", 15));
command.Parameters.Add(new SqlParameter("@NR", a));
尝试显而易见的东西。 如果查询在SQL中工作,那么为什么不使用它呢

command.CommandText = "select * from tblData  where Dia=15 and Rings<=NR";

警告**您的代码可能容易受到sql注入攻击。在您提供的sql查询中,您正在将环与NR进行比较,但在CommandText中,您正在将NR与NR进行比较,并且语法错误介于两者之间。你能澄清什么是目标SQL查询吗?谢谢Daniel提醒我。我将在输入验证命中查询之前添加它。嗨,冯,啊!!我想,我只需要将戒指与NR aThanks进行比较!我很感激。将参数化它。