C# asp.net中遇到的错误问题

问题遇到的现象和发生背景

asp.net页面打不开 ,提示异常
在B站跟着敲的,人家的能运行,我的报错

img

问题相关代码,请勿粘贴截图
 protected void Button1_Click(object sender, EventArgs e)
        {
            string title = TextBox1.Text;
            string tklx =DropDownList1.SelectedValue;
            int sj_id = int.Parse(Request.QueryString["sj_id"]);
            //设置tkInfo
            Models.tkInfo tk = new Models.tkInfo();
            tk.title = title;
            tk.tklx = tklx;
            //查询数据库
            Models.BLLResult result = new BLL.TKBLL().QueryTKInSJList(tk,sj_id);
            if (result.code == 1)
            {
                //绑定数据
                GridView1.DataSource = result.data as List<Models.tkInfo>;
                GridView1.DataBind();
            }
            else
            {
                string msg = Server.HtmlEncode(result.msg.Replace("\r", "").Replace("\n", ""));
                Response.Write("<script>alert('" + msg + "');</script>");
            }
        }

DAL层代码

 public List<Models.tkInfo> QueryTKInSJList(Models.tkInfo tk, int sj_id)
        {
            //定义可变的字符串,用于拼接查询语句
            StringBuilder sSelectSql = new StringBuilder("select * from tkInfo where 1=1");
            List<SqlParameter> parameters = new List<SqlParameter>();
            if (!string.IsNullOrEmpty(tk.tklx))
            {
                //根据题库类型查看题库信息
                sSelectSql.Append(" AND tklx=@tklx");
                parameters.Add(new SqlParameter("@tklx", tk.tklx));
            }
            if (!string.IsNullOrEmpty(tk.title))
            {
                //输入题库标题模糊查询
                sSelectSql.Append(" AND title like @title");
                parameters.Add(new SqlParameter("@title", "%" + tk.title + "%"));
            }
            sSelectSql.Append(" AND exists(select 1 form sjtk where sjtk.tk_id=tkInfo.id AND sjtk.sj_id=@sj_id)");
            Console.WriteLine(sSelectSql);
            parameters.Add(new SqlParameter("@sj_id", sj_id));
            //查询数据库
            List<Models.tkInfo> dataList = DBA.Query<Models.tkInfo>(sSelectSql.ToString(), parameters.ToArray());
            //取第一条即可(ID为主键,如果有值集合中仅有一条数据)
            return dataList;
        }

BLL层代码

      public Models.BLLResult QueryTKList(Models.tkInfo tk)
        {
            Models.BLLResult result = new Models.BLLResult();
            //查询题库数据
            try
            {
                List<Models.tkInfo> dataList = new DAL.TKDAL().QueryTKList(tk);
                result.SetData(dataList);
                return result;
            }
            catch (Exception ex)
            {
                result.SetError("系统异常:" + ex.Message);
                return result;
            }
        }

运行结果及报错内容

img

我的解答思路和尝试过的方法

怀疑是DAL层代码
sSelectSql.Append(" AND exists(select 1 form sjtk where sjtk.tk_id=tkInfo.id AND sjtk.sj_id=@sj_id)");
Console.WriteLine(sSelectSql);
parameters.Add(new SqlParameter("@sj_id", sj_id));
这几句的问题
在 Console.WriteLine(sSelectSql);
parameters.Add(new SqlParameter("@sj_id", sj_id));
这两句加了断点,但启动页面的时候还没轮到这个断点的执行,就报错了
已经知道和数据库链接字符串无关,应该就是粘贴的代码哪里有错,和数据库的连接执行啥的应该无关

我想要达到的结果

希望各位达神能给下意见,最好时解决办法,是在不知道怎么办了,求各位达神帮助

有没有哪位达佬回答下

你好,

Request.QueryString["sj_id"]

这个值是多少?是不是空值? 可以从QueryString中获取包含在URL中的一些参数。如果没有值,刷新页面再看看能不能得到值。