2 votes

System.NullReferenceException : La référence à un objet n'est pas définie comme une instance d'un objet :

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
}

2voto

RJK Points 1661

Avez-vous déclaré globalement ou assigné une valeur nulle à la variable ?

comme ceci string UpdateQuery="";

Vérifiez que les propriétés rate1.Text, company_id.Text, paper_id.Text obtiennent des valeurs ou non.

Déboguer la fonction BindGridData(string Query) l'erreur se produit ici je pense. vérifiez les paramètres de cette fonction. certains paramètres obtiennent une valeur nulle, c'est pourquoi l'exception se produit. vérifiez-le.

J'espère que cela pourra vous aider....

2voto

Pankaj Points 31

Avez-vous déclaré globalement ou assigné une valeur nulle à la variable ?

comme cette chaîne UpdateQuery="" ;

Vérifiez que les propriétés rate1.Text,company_id.Text ,paper_id.Text obtiennent des valeurs ou pas.

Déboguer la fonction BindGridData(string Query) l'erreur se produit là je pense. vérifier les paramètres de cette fonction. certains paramètres obtenant une valeur nulle c'est ce que l'exception vient. vérifier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X