首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求救(那里出有关问题了)

2011-12-30 
求救(那里出问题了)我编一段更新代码,为何执行完后,数据库不能更新,DataGrid1的可以更新,但是DataGrid2的

求救(那里出问题了)
我编一段更新代码,为何执行完后,数据库不能更新,
DataGrid1的可以更新,但是DataGrid2的更新不了,也不提示错误?代码如下:

private   void   Page_Load(object   sender,   System.EventArgs   e)
{
//   在此处放置用户代码以初始化页面
cn=new   SqlConnection(ConfigurationSettings.AppSettings[ "connStr "]);
if(!IsPostBack)  
BindGrid1();
BindGrid2();

}

#region   Web   窗体设计器生成的代码
override   protected   void   OnInit(EventArgs   e)
{
//
//   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

///   <summary>
///   设计器支持所需的方法   -   不要使用代码编辑器修改
///   此方法的内容。
///   </summary>
private   void   InitializeComponent()
{        
this.DataGrid1.PageIndexChanged   +=   new   System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
this.DataGrid1.CancelCommand   +=   new   System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_cancel);
this.DataGrid1.EditCommand   +=   new   System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_edit);
this.DataGrid1.UpdateCommand   +=   new   System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_update);
this.DataGrid1.DeleteCommand   +=   new   System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_delete);
this.DataGrid1.Load   +=   new   System.EventHandler(this.Page_Load);
this.DataGrid1.SelectedIndexChanged   +=   new   System.EventHandler(this.DataGrid1_SelectedIndexChanged);
this.DataGrid2.PageIndexChanged   +=   new   System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
this.DataGrid2.CancelCommand   +=   new   System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid2_cancel);
this.DataGrid2.EditCommand   +=   new   System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid2_edit);
this.DataGrid2.UpdateCommand   +=   new   System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid2_update);
this.DataGrid2.DeleteCommand   +=   new   System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid2_delete);
this.DataGrid2.Load   +=   new   System.EventHandler(this.Page_Load);
this.DataGrid2.SelectedIndexChanged   +=   new   System.EventHandler(this.DataGrid2_SelectedIndexChanged);
this.Button3.Click   +=   new   System.EventHandler(this.Button3_Click);
this.Load   +=   new   System.EventHandler(this.Page_Load);

}
#endregion

private   void   DataGrid1_PageIndexChanged(object   source,   System.Web.UI.WebControls.DataGridPageChangedEventArgs   e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
DataGrid2.CurrentPageIndex=e.NewPageIndex;
BindGrid1();
BindGrid2();
}
public   void   BindGrid1()
{       SqlDataAdapter   da   =   new   SqlDataAdapter( "select   *   from   Department ",cn);
DataSet   ds=new   DataSet();
da.Fill(ds);
DataGrid1.DataSource=ds;
DataGrid1.DataBind();

}
        public   void   BindGrid2()
            {
                          SqlDataAdapter   da   =new   SqlDataAdapter( "select   *   from   people ",cn);


                          DataSet   ds   =   new   DataSet();
da.Fill(ds);
DataGrid2.DataSource=ds;
DataGrid2.DataBind();
    }
public   void   DataGrid1_edit(object   sender,DataGridCommandEventArgs   e)
{
DataGrid1.EditItemIndex=(int)e.Item.ItemIndex;
BindGrid1();
}
public   void   DataGrid2_edit(object   sender,DataGridCommandEventArgs   e)
{DataGrid2.EditItemIndex=(int)e.Item.ItemIndex;
BindGrid2();

}

public   void   DataGrid1_cancel(object   sender,DataGridCommandEventArgs   e)
{
        DataGrid1.EditItemIndex=-1;
BindGrid1();
}
public   void   DataGrid2_cancel   (object   sender,DataGridCommandEventArgs   e)
{
DataGrid2.EditItemIndex=-1;
BindGrid2();
}
public   void   DataGrid1_update(object   sender   ,DataGridCommandEventArgs   e)
{
    SqlCommand   cm=new   SqlCommand( "updateDepartment ",cn);
cm.CommandType=CommandType.StoredProcedure;
cm.Parameters.Add(new   SqlParameter( "@Department_id ",SqlDbType.NVarChar,50));
cm.Parameters.Add(new   SqlParameter( "@Department_name ",SqlDbType.NVarChar,50));
cm.Parameters[ "@Department_name "].Value=((TextBox)e.Item.Cells[1].Controls[0]).Text;
cm.Parameters[ "@Department_id "].Value=DataGrid1.DataKeys[(int)e.Item.ItemIndex];
cm.Connection.Open();
cm.ExecuteNonQuery();
DataGrid1.EditItemIndex=-1;
cm.Connection.Close();
BindGrid1();
}
public   void   DataGrid2_update(object   sender,DataGridCommandEventArgs   e)
{
SqlCommand   cd=new   SqlCommand( "updatepeople ",cn);
cd.CommandType=CommandType.StoredProcedure;
cd.Parameters.Add(new   SqlParameter( "@People_id ",SqlDbType.NVarChar,50));
cd.Parameters.Add(new   SqlParameter( "@People_name ",SqlDbType.NVarChar,50));
cd.Parameters.Add(new   SqlParameter( "@Sex ",SqlDbType.NVarChar,50));
cd.Parameters.Add(new   SqlParameter( "@Post ",SqlDbType.NVarChar,50));
cd.Parameters.Add(new   SqlParameter( "@Department_id ",SqlDbType.NVarChar,50));
cd.Parameters.Add(new   SqlParameter( "@Department_name ",SqlDbType.NVarChar,50));
cd.Parameters.Add(new   SqlParameter( "@Homeaddress ",SqlDbType.NVarChar,50));
cd.Parameters.Add(new   SqlParameter( "@Officephone ",SqlDbType.NVarChar,50));
cd.Parameters.Add(new   SqlParameter( "@Homephone ",SqlDbType.NVarChar,50));
cd.Parameters.Add(new   SqlParameter( "@ID_card ",SqlDbType.NVarChar,50));
cd.Parameters.Add(new   SqlParameter( "@beizhu ",SqlDbType.NVarChar,50));
 
cd.Parameters[ "@People_name "].Value=((TextBox)e.Item.Cells[1].Controls[0]).Text;
cd.Parameters[ "@Sex "].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text;
cd.Parameters[ "@Post "].Value=((TextBox)e.Item.Cells[3].Controls[0]).Text;
cd.Parameters[ "@Department_id "].Value=((TextBox)e.Item.Cells[4].Controls[0]).Text;
cd.Parameters[ "@Department_name "].Value=((TextBox)e.Item.Cells[5].Controls[0]).Text;
cd.Parameters[ "@Homeaddress "].Value=((TextBox)e.Item.Cells[6].Controls[0]).Text;
cd.Parameters[ "@Officephone "].Value=((TextBox)e.Item.Cells[7].Controls[0]).Text;


cd.Parameters[ "@Homephone "].Value=((TextBox)e.Item.Cells[8].Controls[0]).Text;
cd.Parameters[ "@ID_card "].Value=((TextBox)e.Item.Cells[9].Controls[0]).Text;
cd.Parameters[ "@beizhu "].Value=((TextBox)e.Item.Cells[10].Controls[0]).Text;
cd.Parameters[ "@People_id "].Value=DataGrid2.DataKeys[(int)e.Item.ItemIndex];

  cd.Connection.Open();
  cd.ExecuteNonQuery();
                          DataGrid2.EditItemIndex=-1;
  cd.Connection.Close();
  BindGrid2();

}
public   void   DataGrid1_delete(object   sender,DataGridCommandEventArgs   e)
{
string   strsql= "delete   from   Department   where   Department_id=@Department_id ";
SqlCommand   cm=new   SqlCommand(strsql,cn);
                        cm.Parameters.Add(new   SqlParameter( "@Department_id ",SqlDbType.NVarChar,50));
cm.Parameters[ "@Department_id "].Value=DataGrid1.DataKeys[(int)e.Item.ItemIndex];

cm.Connection.Open();
try
{
cm.ExecuteNonQuery();
}
catch(SqlException)
{}
cm.Connection.Close();
BindGrid1();
}
public   void   DataGrid2_delete(object   sender,DataGridCommandEventArgs   e)
{
string   strsql= "delete   from   people   where   People_id=@People_id   ";
SqlCommand   cm=new   SqlCommand(strsql,cn);
cm.Parameters.Add(new   SqlParameter( "@People_id ",SqlDbType.NVarChar,50));
cm.Parameters[ "@People_id "].Value=DataGrid2.DataKeys[(int)e.Item.ItemIndex];
cm.Connection.Open();
cm.ExecuteNonQuery();
cm.Connection.Close();
BindGrid2();
}
private   void   DataGrid1_SelectedIndexChanged(object   sender,   System.EventArgs   e)
{

}

private   void   Button3_Click(object   sender,   System.EventArgs   e)
{
Response.Redirect( "AddDepartment.aspx ");
}

private   void   DataGrid2_SelectedIndexChanged(object   sender,   System.EventArgs   e)
{

}
}
}


[解决办法]
改成这样试试
===================
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
cn=new SqlConnection(ConfigurationSettings.AppSettings[ "connStr "]);
if(!IsPostBack)
{
BindGrid1();
BindGrid2();
}

}

热点排行