后半段的程序的错误是列名a无效,可是我的想法是a是个参数

namespace 志愿通
{
public partial class 历史类 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

    }

    protected void 查询_Click(object sender, EventArgs e)

    {
        String ConnStr = "Data Source=DESKTOP-3IT6TKJ;Initial Catalog=成绩表;Integrated Security=True";
        SqlConnection conn = new SqlConnection(ConnStr);

        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        cmd.CommandText = "SELECT * from  一分一段历史表 WHERE 分数 = '" + fenshu.Text.Trim() + "'";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();

        //this.Update(dr);
        this.GridView3.DataSource = dr;
        this.DataBind();
        //this.GridView3.DataSourceID = null;









    }

    protected void GridView3_SelectedIndexChanged(object sender, EventArgs e)
    {
       
    }

    protected void 输入分数_TextChanged(object sender, EventArgs e)
    {

    }

    protected void fenshu_TextChanged(object sender, EventArgs e)
    {

    }

    protected void xuexiao_Click(object sender, EventArgs e)
    {
        String ConnStr = "Data Source=DESKTOP-3IT6TKJ;Initial Catalog=成绩表;Integrated Security=True";
        SqlConnection conn = new SqlConnection(ConnStr);

        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        int a;
        a=int.Parse(qujian.Text .Trim());

        // cmd.CommandText = "SELECT * from  历史表 WHERE 分数 > '" + fenshu.Text.Trim() + "'+"qujian.Text.Trim()"and分数 < '" + fenshu.Text.Trim() + "'+"qujian.Text.Trim()" ";
        cmd.CommandText = "select * from 物理表 where 投档最低分>'" + fenshu.Text.Trim() + "' -a  and 投档最低分<'" + fenshu.Text.Trim() + "'+a";
        
        //cmd.CommandText = "select * from 物理表 where 投档最低分>'" + fenshu.Text.Trim() + "'- 5 and 投档最低分<'" + fenshu.Text.Trim() + "'+ 5";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        this.GridView4.DataSource = dr;
        this.DataBind();

img