如何从asp.net中选择参数化查询

如何从asp.net中选择参数化查询,asp.net,Asp.net,我想为select语句编写参数化查询。但它给出了必须声明变量“@”的异常。如何声明这个变量 我的代码如下: SqlConnection con = null; SqlCommand cmd = null; try { //int @[MONTH_FOR], @[YEAR_FOR]; con = new SqlConnection("Data Source=192.168.10.3;Initial Ca

我想为select语句编写参数化查询。但它给出了必须声明变量“@”的异常。如何声明这个变量

我的代码如下:

SqlConnection con = null;
        SqlCommand cmd = null;
        try
        {
            //int @[MONTH_FOR], @[YEAR_FOR];
            con = new SqlConnection("Data Source=192.168.10.3;Initial Catalog=GPSTrainees;user id=gp;password=gp");
            con.Open();
            string select = @"SELECT [COMPONENT_NAME] ,[COMPONENT_AMOUNT] 
                            FROM [GoalPlanForTrainees].[gp].[TEAM_FUNDS_DETAILS] 
                            WHERE [MONTH_FOR] = @[MONTH_FOR] AND [YEAR_FOR] = @[YEAR_FOR]";
            cmd = new SqlCommand(select, con);
            cmd.Parameters.Add(new SqlParameter("@[MONTH_FOR]", Convert.ToInt32( TextBox1.Text.Trim())));
            cmd.Parameters.Add(new SqlParameter("@[YEAR_FOR]",Convert.ToInt32(TextBox2.Text.Trim())));
            DataSet ds = new DataSet();
            SqlDataAdapter adp = new SqlDataAdapter(select, con);
            adp.Fill(ds);
            GridView1.DataSource = ds;
            GridView1.DataBind();
        }
        catch (Exception ex)
        {
        }
        finally
        {
            if (con != null)
            {
                con.Close();
            }
        }`enter code here`

将变量声明放在sql语句中。因此,把时间移到"月","年",; 到 @整数[月份],[年份];从[GoalPlanForTrainees].[gp].[TEAM\u FUNDS\u DETAILS]中选择[COMPONENT\u NAME]、[COMPONENT\u AMOUNT],其中[MONTH\u FOR]=@[MONTH\u FOR]和[YEAR\u FOR]=@[YEAR\u FOR]


干杯跳跳虎

创建参数时,请删除参数名称前的@。大概是这样的:

cmd.Parameters.Add(new SqlParameter("[MONTH_FOR]", Convert.ToInt32(TextBox1.Text.Trim()))); 
希望这会有所帮助。

试试这个

int MONTH_FOR=@monthFor
command.Parameters.Add(MONTH_FOR, SqlDbType.int).Value = value

是这样吗?msdn示例显示了带有参数名称的@。