系统.NullReferenceException:对象引用没有被设置为对象的实例



我是asp.net的新手,在asp.net的数据网格视图上工作。我编写了以下代码,用于插入和更新网格视图中的列。网格显示数据非常好,但是当我试图编辑网格中的任何一行时,它会抛出一个异常:

系统。NullReferenceException:对象引用未设置为对象的实例:在以下行:

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
}

是否全局声明或赋空值给变量..?

like this string UpdateQuery="";

查看rate1.Text,company_id。文本,paper_id。文本属性是否有值

调试功能BindGridData(string Query)发生的错误,我认为。检查该函数的参数。一些参数得到空值这就是异常将要发生的。看一看

希望对大家有所帮助....

是否全局声明或赋空值给变量..?

像这个字符串UpdateQuery=";

查看rate1.Text,company_id。文本,paper_id。文本属性是否有值

调试函数BindGridData(字符串查询)我认为那里发生的错误。检查该函数的参数。一些参数得到空值这就是异常将要发生的。

最新更新