我现在要对datagrid 中的内容更新,在点击修改后,提示出错为:
“/升日财务管理软件”应用程序中的服务器错误。
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。代码部分为:
public void dgdepartment_updatecommand(object s,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int departmentid = int.Parse(dgdepartment.DataKeys[e.Item.ItemIndex].ToString());
string departmentnamestr = ((TextBox)e.Item.FindControl ("部门名")).Text ;
string sqlstr = "update 部门资料 set 部门名=@departmentnamestr where id=@departmentid";
SqlConnection myconn = new SqlConnection(ConfigurationSettings.AppSettings["connstring"]);
SqlCommand upcmd = new SqlCommand(sqlstr,myconn);
myconn.Open();
upcmd.Parameters.Add("@departmentname",SqlDbType.NVarChar,50);
upcmd.Parameters.Add("@departmentid",departmentid);
upcmd.ExecuteNonQuery();
dgdepartmentbind();
}请问这是什么问题导至,应该怎么改,还有,这个我每次在都要做两次单“编辑“按钮才行,请这是小了什么语句呢?

解决方案 »

  1.   

    upcmd.Parameters.Add("@departmentname",SqlDbType.NVarChar,50).Value = departmentnamestr;
    upcmd.Parameters.Add("@departmentid",departmentid).Value = departmentid;
      

  2.   

    按楼上的修改还是不行哟,提示的错误代码是: int departmentid = int.Parse(dgdepartment.DataKeys[e.Item.ItemIndex].ToString());
    string departmentnamestr = ((TextBox)e.Item.FindControl ("部门名")).Text ;//提示为本行错误
    string sqlstr = "update 部门资料 set 部门名=@departmentnamestr where id=@departmentid";
    SqlConnection myconn = new SqlConnection(ConfigurationSettings.AppSettings["connstring"]);
    SqlCommand upcmd = new SqlCommand(sqlstr,myconn);
    myconn.Open();
    //upcmd.Parameters.Add("@departmentname",SqlDbType.NVarChar,50);
    //upcmd.Parameters.Add("@departmentid",departmentid);
    upcmd.Parameters.Add("@departmentname",SqlDbType.NVarChar,50).Value = departmentnamestr;
    upcmd.Parameters.Add("@departmentid",departmentid).Value = departmentid;
    upcmd.ExecuteNonQuery();
    dgdepartment.EditItemIndex = -1;
    dgdepartmentbind();
      

  3.   

    datagride里面的列不是textbox的!
      

  4.   

    楼上一位能说清楚点吗,如果不是TextBox,那是什么呢?
      

  5.   

    在Page指令中加上debug,然后运行看具体哪一行代码出错了,你的DataGrid的EditCommand事件处理程序是怎么写的?绑定数据时有没有把代码放在if(!Page.IsPostBack)中?