如果想自己插入一行,首先得将m_Table.DefaultView.AllowNew设置为False;
然后写程序的时候再更改AllowNew为True,这样DataGrid就不会自动新增一行了。

解决方案 »

  1.   


     这是我的代码,我成功的在第一行后插入一个新行...
      string m_ConnStr = "data source=127.0.0.1;database=pubs;user id=sa;password=sa";
    SqlConnection m_Conn = new SqlConnection(m_ConnStr);

    SqlDataAdapter m_Da = new SqlDataAdapter("select title from titles",m_Conn);
    DataSet m_Ds = new DataSet();
    m_Da.Fill(m_Ds,"Titles");

    DataRow m_Dr = m_Ds.Tables["Titles"].NewRow();
    m_Dr["title"] = "aaa";
    m_Ds.Tables["Titles"].Rows.InsertAt(m_Dr,1); dataGrid1.DataSource = m_Ds.Tables["Titles"];
      

  2.   

    回复人: chNET(有神论者) ( ) 信誉:100 
    是在绑定以前插入得一行,那么绑定以后插入你看看是不是datagrid会正常得显示出来
    而且 出现得问题,是把你插入得一行,给你追加到最后了。效果不是插入,变成了append
      

  3.   

    DataRow dr=this.dataSet11.Tables[0].NewRow();
    dr[0]="windy";
    dr[1]=99;
    //this.dataGrid1.DataBindings .Clear ();
    this.dataSet11.Tables [0].Rows.InsertAt(dr,1);
    //this.dataGrid1 .DataSource =this.dataSet11.Tables [0] ;
    this.dataSet11 .AcceptChanges();
    这样没有问题,dataBindings 也不用clear;
      

  4.   

    this.dataSet11 .AcceptChanges();
      

  5.   

    acceptchanges之后还需要绑定一次datagrid吧?楼上?datagrid1.datasource=dt一把。不过ado.net 还是很有意思研究的
      

  6.   


      string m_ConnStr = "data source=127.0.0.1;database=pubs;user id=sa;password=sa";
    SqlConnection m_Conn = new SqlConnection(m_ConnStr);

    SqlDataAdapter m_Da = new SqlDataAdapter("select title from titles",m_Conn);
    DataSet m_Ds = new DataSet();
    m_Da.Fill(m_Ds,"Titles"); dataGrid1.DataSource = m_Ds.Tables["Titles"]; DataRow m_Dr = m_Ds.Tables["Titles"].NewRow();
    m_Dr["title"] = "aaa";
    m_Ds.Tables["Titles"].Rows.InsertAt(m_Dr,1); m_Ds.AcceptChanges();
    dataGrid1.DataSource = m_Ds.Tables["Titles"];
      

  7.   

    先修改datagrid绑定表dataset[tablename],然后在把dataset[tablename].defualtview赋予datagrid.datasource;
      

  8.   

    在你的代码后面加上这句话,新行就不会添加到最后了my_Ds.AcceptChanges()