我现在用DataGrid显示从数据库中提取的数据,然后做了添加、修改、删除三个按钮。点击添加按钮用.ShowDialog()属性弹出一个新窗口,然后输入数据insert到数据库,点击确定完成数据添加并关闭添加窗口,但现在遇到怎样刷新DataGrid的问题, 请指教.  我试过 在主窗体写了公共方法bind_datagrid()  
但是出现了很奇怪的问题, 求其它解决方法

解决方案 »

  1.   

    这个问题真是相当奇怪. 我插入数据后  调用 bind()成功在更新数据时, 就不成功, 但是存储过程没有错, 我看过数据库数据事实上可以成功更新的. 但是一调用bind() 到了  grd.datasource=_dt 时, 就会出错, 说什么我的content 不属于表, 真是无话可说
      

  2.   

    那你在“点击确定完成数据添加并关闭添加窗口”中的“确定”按钮那里再加载一次databind()不就可以了么?
      

  3.   

    是啊, 调用bind() 是绝对没有错的, 我的insert  也是这样的搞的. 但是来到了edit 状态的就不行.   搞不掂它, 我今晚就跳楼算了. 哈哈.
      

  4.   

    我真的不知道是什么原因啊, 救命啊. 有心兄弟可以看一下下面的代码.  insert 时候与update 也是一样调用, 逻辑上也一模一样, why?  private void TaskDetail_Load(object sender, System.EventArgs e)
    {
    //Bind data
    Bind_comStatus();
    Bind_data();

    }
    private void Bind_data()
    {
     
    _TaskDetailID=frmManage.TaskListID;
    if(_TaskDetailID==0)
    {
    txtContext.Text=string.Empty;
    txtExperience.Text=string.Empty;
    txtTaskTitle.Text=string.Empty;
    }
    else
    {
    DataRow dr=tasklist.rowTaskList(_TaskDetailID);
    txtContext.Text=dr["Content"].ToString();
    txtExperience.Text=dr["ExperienceSumup"].ToString();
    txtTaskTitle.Text=dr["TaskTitle"].ToString();
    if(dr["AlarmTime"].ToString().Substring(0,8)=="1900-1-1")
    {
    timeAlarm.Checked=false;
    }
    else
    {
    timeAlarm.Value=Convert.ToDateTime(dr["AlarmTime"]);
    }
    if(dr["FinishTime"].ToString().Substring(0,8)=="1900-1-1")
    {
    timeFinish.Checked=false;
    }
    else
    { timeFinish.Value=Convert.ToDateTime(dr["FinishTime"]);
    }
    comStatus.SelectedValue=dr["StatusID"].ToString();
     
    }
    } private void btnSave_Click(object sender, System.EventArgs e)
    {
    Model.TaskListInfo newtasklist=new Model.TaskListInfo();
         newtasklist.AddTime=System.DateTime.Now;
    if(timeAlarm.Checked==false)
    {
     
     newtasklist.AlarmTime=Convert.ToDateTime("1900-01-01") ;
    }
    else
    {
    newtasklist.AlarmTime=timeFinish.Value;
    } newtasklist.Content=txtContext.Text.Trim();
    newtasklist.ExperienceSumup=txtExperience.Text.Trim();
    if(timeFinish.Checked==false)
    {
     newtasklist.FinishTime=Convert.ToDateTime("1900-01-01") ;
    }
    else
    {
    newtasklist.FinishTime=timeFinish.Value;
    }
    //newtasklist.ImportanceLevel=1
     
        newtasklist.StatusID=Convert.ToInt16( clsTools.StringToNumber( comStatus.SelectedValue.ToString())) ;
    newtasklist.TaskID=frmManage.TaskListID ;
    newtasklist.TaskTitle=txtTaskTitle.Text.Trim();

    tasklist.insertTaskList(newtasklist);
    frmManage.Bind_DataGrid();
    this.Close();
    }