Je suis nouveau dans asp.net et je travaille sur la vue de la grille de données dans asp.net. J'ai écrit le code suivant pour insérer et mettre à jour les colonnes dans la vue de la grille. La grille montre les données très bien, mais quand j'essaie d'éditer n'importe quelle ligne dans la grille alors il jette une exception :
System.NullReferenceException : Object reference not set to an instance of an object : dans la ligne suivante :
string UpdateQuery = string.Format("UPDATE tbl_PaperRateList set rate=" + rate1.Text + " where companyId=" + company_id.Text + " and paperId=" +paper_id.Text+ "");
SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["con"].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridData();
}
}
protected void gridRateList_RowEditing(object sender, GridViewEditEventArgs e)
{
gridRateList.EditIndex = e.NewEditIndex;
BindGridData();
}
protected void gridRateList_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gridRateList.EditIndex = -1;
BindGridData();
}
#endregion
#region Binding the RateList Grid
public void BindGridData()
{
{
conn.Open();
SqlCommand cmdCompanyId = new SqlCommand("Select max(companyId) from tbl_PaperRateList", conn);
int c_id = Convert.ToInt32(cmdCompanyId.ExecuteScalar());
using (SqlCommand comm = new SqlCommand("select p.paperId,"
+ "p.Rate,pm.PaperName from tbl_PaperRatelist p,tbl_papermaster pm where p.paperId=pm.paperId and p.companyId=" + c_id + "", conn))
{
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
da.Fill(ds);
gridRateList.DataSource = ds;
gridRateList.DataBind();
}
}
}
#endregion
#region /*Updating the Row in Grid View*/
protected void gridRateList_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string s = gridRateList.DataKeys[e.RowIndex].Value.ToString();
Label company_id = (Label)gridRateList.Rows[e.RowIndex].FindControl("CompanyId");
Label paper_id = (Label)gridRateList.Rows[e.RowIndex].FindControl("paperId");
TextBox rate1 = (TextBox)gridRateList.Rows[e.RowIndex].FindControl("txtRate");
string UpdateQuery = string.Format("UPDATE tbl_PaperRateList set rate=" + rate1.Text + " where companyId=" + company_id.Text + " and paperId=" +paper_id.Text+ "");
gridRateList.EditIndex = -1;
BindGridData(UpdateQuery);
}
#endregion
#region Bind the Gridview after updating the row
private void BindGridData(string Query)
{
string connectionstring = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connectionstring))
{
conn.Open();
SqlCommand cmdCompanyId = new SqlCommand("Select max(companyId) from tbl_PaperRateList", conn);
int cid = Convert.ToInt32(cmdCompanyId.ExecuteScalar());
using (SqlCommand comm = new SqlCommand(Query +
";select p.paperId,"
+ "p.Rate,pm.PaperName from tbl_PaperRatelist p,tbl_papermaster pm where p.paperId=pm.paperId and p.companyId=" + cid + "", conn))
{
SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
da.Fill(ds);
gridRateList.DataSource = ds;
gridRateList.DataBind();
}
}
}
#endregion
}