你没有用相应的CommandBuilder产生相应的修改、删除的sql语句啊!当然不能更新啊!

解决方案 »

  1.   

    重新用adapter去把mydataset fill一下
      

  2.   

    要重新绑顶的啊,函数的系统参数要加上的啊
    object sender和DataGridCommandEventArgs e
    比如我写的删除函数:
    <asp:datagrid id="dgrd" runat="server" DataKeyField="QuestionID" OnEditCommand="EditCommand" OnUpdateCommand="UpdateCommand" OnCancelCommand="CancelCommand" AutoGenerateColumns="false" ShowFooter="True" OnItemCommand="ItemCommandHandler" OnItemCreated="ItemCreated" PageSize="5" OnPageIndexChanged="dgrd_PageIndexChanged" AllowPaging="True" ShowHeader="True" Width="100%"/>
    public void ItemCommandHandler(object sender,DataGridCommandEventArgs e)
    {
    if (e.CommandName=="deleteinfo")
    {
    int index=dgrd.CurrentPageIndex;



    int nQuestionID=(int)dgrd.DataKeys[e.Item.ItemIndex];
    string strConnection = ConfigurationSettings.AppSettings["SQLConnectionString"];
    SqlConnection conn = new SqlConnection(strConnection);

                    conn.Open(); //打开数据库
    String strcmd2="delete from Answer where QuestionID='"+nQuestionID+"'";
    SqlCommand cmd2=new SqlCommand(strcmd2,conn);
    cmd2.ExecuteNonQuery();
    String strcmd1="delete from GroupQuestion where QuestionID='"+nQuestionID+"'";
    SqlCommand cmd1=new SqlCommand(strcmd1,conn);
    cmd1.ExecuteNonQuery();
    String strcmd="delete from QuestionInfo where QuestionID='"+nQuestionID+"'";
    SqlCommand cmd=new SqlCommand(strcmd,conn);
    cmd.ExecuteNonQuery();
    dgrd.DataSource = CreateDataSource(); if(IsLastPage())
    {
    dgrd.CurrentPageIndex--;}
    dgrd.DataBind();
    conn.Close();
    }
    }
      

  3.   

    dataGrid1.DataSource=mydataset.Tables["biao"].DefaultView;
    dataGrid1.SetDataBinding;
    这两句改为
    dataGrid1.SetDataBinding(myDataSet,"biao");
    试试.