Как заполнить gridview результатами SQL-запроса
Я использую 3-уровневую архитектуру, и у меня возникли проблемы с отображением данных в gridview.
Я продолжаю получать ошибку "
Procedure or function 'spDisplayComplainant' expects parameter '@IDNum', which was not supplied"но я не вижу, где я не предоставил удостоверение личности
Что я уже пробовал:
В моем БЛЛ у меня есть
public List<Complainant> GetComplainantDetails(string idnum) { return db.GetComplainantDetails(idnum); }
Тогда в моем доступе к БД у меня есть
public List<Complainant> GetComplainantDetails(string idnum) { List<Complainant> comp = new List<Complainant>(); Complainant co = null; SqlParameter[] pars = new SqlParameter[] { new SqlParameter("@IDNum", idnum), }; using (DataTable table = DBHelper.ExecuteParamerizedSelectCommand("spDisplayComplainant", CommandType.StoredProcedure, pars)) { if (table.Rows.Count > 0) { foreach (DataRow row in table.Rows) { co = new Complainant(); co.ComplainantID = row["ComplainantID"].ToString(); co.FirstName = (row["FirstName"].ToString()); co.LastName = (row["LastName"].ToString()); co.Statement = (row["Statement"].ToString()); comp.Add(co); } } } return comp; }
И тогда на страницу, где я хочу, чтобы отобразить в GridView
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //string txtSession = " "; if (Session["IDNumber"] == null) { } else { string Id = Session["IDNumber"].ToString(); bll = new BusinessLogicLayer(); GridView1.DataSource = bll.GetComplainantDetails(Id); GridView1.DataBind(); BindGrid(); } } }
и моя хранимая процедура выглядит следующим образом
Выберите [ComplainantID], [FirstName], [LastName], [Statement]
ОТ ЗАЯВИТЕЛЯ
Где ComplainantID = @IDNum