提供一个思路,先DataRow添加每一个字段得值,然后把datarow添加到datatable中,然后重新绑定datagrid

解决方案 »

  1.   


    这是msdn上的一个例子
    private void CreateNewDataRow(){
        // Use the MakeTable function below to create a new table.
        DataTable myTable;
        myTable = MakeNamesTable();
        // Once a table has been created, use the NewRow to create a DataRow.
        DataRow myRow;
        myRow = myTable.NewRow();
        // Then add the new row to the collection.
        myRow["fName"] = "John";
        myRow["lName"] = "Smith";
        myTable.Rows.Add(myRow);
        
        foreach(DataColumn dc in myTable.Columns)
           Console.WriteLine(dc.ColumnName);
        dataGrid1.DataSource=myTable;
     }
      

  2.   

    能否贴详细的源码,两个button,点button1,在datagrid中显示一行,点button2在datagrid中加一行?
      

  3.   

    这么奇怪的需求,那你只能自己new 一个datatable了,把dataset中的表中的行,每次在点击时增加一,DataTable  atable=new DataTable();//这个table的结构DataColumn设定
    .
    ,
    ,DataRow myrow=atable.NewRow();
    myrow["name"]=yourdataset.Tables[yourtable].Rows[i][0];//i再外部定义.
    .
    .
    .
    .
    mytable.Add.Rows(myrow);
    i++;datagrid1.Datasource=atable;
    datagrid1.DataBinding()
      

  4.   

    sorry没有调试,
    这里应为myrow["name"]=yourdataset.Tables[yourtable].rows[i][0].ToString();
      

  5.   

    tlping 兄把代码全贴出来吧。我有点搞糊涂了
      

  6.   

    我想实现的是一个事件触发修改原来的datatable(已经绑定在datagrid上),例如加一行,减一行等,然后再将修改后的datatable绑定到grid上显示出来,达到实时刷新数据的目的。如果这样不好实现,其他的方法呢?
      

  7.   

    private static int i=0;
    private static DataSet yourdataset;//这个dataset中的表你自己获取//这方法在程序在载入时调用
    private void createmytable()
    {
    DataTable mytable=new DataTable();myTable.Columns.Add("Name", typeof(String));
      myTable.Columns.Add("Sex",typeof(String));
    }//假设表中两个字段private button2_Click(object sender,EventArgs e)
    {    DataRow myrow=mytable.NewRow();
      myRow["Name"]=
           yourdataset.Tables["yourtable"].Rows[i][0].ToString();
      myRow["Sex"]=
            yourdataset.Tables["yourtable"].Rows[i][1].ToString();
    mytable.Add(myrow);
    datagrid1.DataSource=mytable;
    dataGrid1.DataBinding();
    i++;}
    你多看看文档吧~那里很详细搜索一下datatable,datarow,datacolumn
      

  8.   

    如果datatable已经绑定
    在你的修改datatable的代码后,加一行重新绑定datagrid不就实现实时更新了吗?
      

  9.   

    谢谢tlping(crazyboy)兄,我搞定了。给你30分
      

  10.   

    public  void CreatNewAlarmRow(string objectName,int alarmNo,AlarmEntry alarmEntry, DateTime eventTime)
    {
    string strExpr;
    strExpr ="对象编码='" +objectName + "'AND 告警编号='"+alarmNo+"'";
    DataRow[] rows=this._alarmTable.Select(strExpr);
    if(rows.Length > 0)
    {
    return;
    }
    DataRow AlarmRow;
    AlarmRow=this._alarmTable.NewRow();
    AlarmRow["对象编码"] = objectName;
    AlarmRow["告警编号"] = alarmNo;
    AlarmRow["告警等级"] = alarmEntry.AlarmDescription.Level;
    AlarmRow["告警对象"] = alarmEntry.ManageObject;
    AlarmRow["告警描述"] = alarmEntry.SubManageObject + alarmEntry.AlarmDescription.Text;
    AlarmRow["产生时间"] = eventTime.ToString();
    AlarmRow["告警类型"] = alarmEntry.AlarmDescription.Type;
    AlarmRow["确认用户"] = string.Empty;
    AlarmRow["确认时间"] = string.Empty;
    this._alarmTable.Rows.Add(AlarmRow);
    // this.AlarmListdataGrid.Refresh();
    }