各位大侠帮我看看我的updata()命令错误在哪里,我运行没有错,就是数据表不能更新,是什么原因啊?代码如下:
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.Button1_Click(source,e);          //更新数据库中的信息       
string strTblName=this.DropDownList1.SelectedItem.Text.Trim();                //记录当前操作表的名字
DataRow dr=this.dataSet11.Tables[strTblName].Rows[(int)e.Item.ItemIndex];        //声明一个DataRow对象
for(int i=0;i<e.Item.Cells.Count-2;i++)                 //逐列更新数据
{
if(dr[i].GetType().Name.Equals("Int32"))
dr[i]=Int32.Parse(((TextBox)e.Item.Cells[i+2].Controls[0]).Text);
else if(dr[i].GetType().Name.Equals("float"))
dr[i]=float.Parse(((TextBox)e.Item.Cells[i+2].Controls[0]).Text);
else if(dr[i].GetType().Name.Equals("Decimal"))
dr[i]=Decimal.Parse(((TextBox)e.Item.Cells[i+2].Controls[0]).Text);
else
dr[i]=e.Item.Cells[i+2].Text.Trim();
}
this.sqlDataAdapter1.Update(this.dataSet11,strTblName);              //更新数据库
this.DataGrid1.EditItemIndex=-1;               //重新加载数据
this.Button1_Click(source,e);

解决方案 »

  1.   

    this.DataGrid1.EditItemIndex=-1;               //重新加载数据
    这叫重新加载数据?
    再把Grid.Bind()一次吧
    可能数据库已经有数据了,就是没有显示出来而已
      

  2.   

    重新加载数据是this.Button1_Click(source,e);啊,该函数里面就已经包括datagrid.databind()了,数据库里面没有数据。????
      

  3.   

    你写的太复杂了啊 
    用DataGrid的Updata() 再WEB页面更新数据库没这么复杂啊 
    你加我QQ 把 我们具体谈谈 83434829
      

  4.   

    你在Update()方法之前要执行这个,
    this.dataSet11.AcceptChange();
    没有这个方法,数据集并没有更新,所以你的数据库不会更新记录.
    另外提示:你在执行button1_click的时候可以这样写
    this.button1.PerformClick();不需要加入那些参数了
      

  5.   

    如无聊所说:
    this.dataSet11.AcceptChange();将更新保存到Datasetthis.sqlDataAdapter1.Update;将DateSet中的数据保存到数据库
      

  6.   

    加了this.dataSet11.AcceptChange();,数据还是没有更新,奇怪了!
      

  7.   

    你到vs.net 里面跟踪,在这句这里设置个断点,看看选中的那行记录的值是否已经改变 this.sqlDataAdapter1.Update(this.dataSet11,strTblName);