У меня проблема на GridView в жерех чистой C# с подкачкойGridView в asp.net C# с пейджинговой
Это GridView заполняется с запросом, где называется одно значение, переданное в строку запроса.
Вначале привязка вывода в GridView правильная, но когда я пытаюсь изменить страницу, ответ GridView с ошибкой ниже.
Exception Details: System.NullReferenceException: Object reference not
set to an instance of an object.
В этой строке в общественного DataTable GridViewBind()
throw ex;
Я думаю, что ошибка вызвана из значения строки запроса, которая теряется в перезагрузки страницы.
Мой код ниже, я был бы признателен за любую помощь, которую вы можете дать мне в работе над этой проблемой.
public DataTable GridViewBind()
{
sql = " SELECT * from tbl_premium WHERE Year_month = ?; ";
try
{
dadapter = new OdbcDataAdapter(sql, conn);
if (!string.IsNullOrEmpty(Request.QueryString["Year_month"].ToString()))
{
dadapter.SelectCommand.Parameters.Add("param1", Request.QueryString["Year_month"].ToString());
}
dset = new DataSet();
dset.Clear();
dadapter.Fill(dset);
DataTable dt = dset.Tables[0];
GridView1.DataSource = dt;
GridView1.DataBind();
return dt;
}
catch (Exception ex)
{
throw ex;
}
finally
{
dadapter.Dispose();
dadapter = null;
conn.Close();
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridViewBind();
GridView1.DataSource = dset.Tables[0];
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
protected void ddlPages_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow gvrPager = GridView1.BottomPagerRow;
DropDownList ddlPages = (DropDownList)gvrPager.Cells[0].FindControl("ddlPages");
GridViewBind();
GridView1.DataSource = dset.Tables[0];
GridView1.PageIndex = ddlPages.SelectedIndex;
GridView1.DataBind();
}
protected void Paginate(object sender, CommandEventArgs e)
{
int intCurIndex = GridView1.PageIndex;
switch (e.CommandArgument.ToString().ToLower())
{
case "First":
GridView1.PageIndex = 0;
break;
case "Prev":
GridView1.PageIndex = intCurIndex - 1;
break;
case "Next":
GridView1.PageIndex = intCurIndex + 1;
break;
case "Last":
GridView1.PageIndex = GridView1.PageCount - 1;
break;
}
GridView1.DataBind();
}
Сообщите нам, в какой строке произошла ошибка, поэтому нам не нужно гадать. Кроме того, я вижу, что у вас есть эта строка 'GridView1.DataSource = dset.Tables [0];' но вы не показываете инициализацию объекта 'dset' в любом месте. – mason
У меня есть вопрос, спасибо. –
Избавьтесь от 'catch (Exception ex) {throw ex;}'. Все, что делает, это испортить трассировку стека. Похоже, что исключение исходило от _that_. Вам это нехорошо. Избавиться от этого. –