C# 如何从代码隐藏文件比较(小于或等于)C中的两个sql列
我一直在比较combobox值和SQL列。我正在尝试用C从VS2010开始做这件事。我使用的是SQLServer2008 请在下面找到我的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
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进行比较!我很感激。将参数化它。