往DataTable 里加dt.Rows.Add(dt.NewRow()); 

解决方案 »

  1.   

    datagridview本身就是可以编辑的控件,最后一行就有一个*号,就可以编辑了。
    例如数据表有3条记录,显示在DataGridView控件会有4行,第4行前面有*号,你编辑后,必须要编码实现更新。
    修改、添加、删除都需要有,这是一个例子:    SqlConnection sqlConn = new SqlConnection("data source=(local); initial catalog=JWInfo; integrated security=SSPI");
        SqlCommand selCmd = new SqlCommand("Select * from 学生信息", sqlConn);
        
        sqlDa = new SqlDataAdapter(selCmd);
        SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(sqlDa);
        
        sqlDa.Fill(sqlDs, "学生信息");
        DataGridView1.DataSource = sqlDs.Tables("学生信息");更新逻辑:    sqlDsChanged = sqlDs.GetChanges();
        if ((sqlDsChanged != null)) {
            sqlDa.Update(sqlDs, "学生信息");
            sqlDs.AcceptChanges();
            
            if ((Op == OpType.Add)) {
                MessageBox.Show("记录添加成功!", "操作结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else if ((Op == OpType.Update)) {
                MessageBox.Show("记录更新成功!", "操作结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
      

  2.   

    一样的道理!
    你动态生成的,也是要创建DataTable,为DataTable动态添加列,然后才能添加行。
    最后将datagridview绑定到datatable上。这种情况下,你在datagridview中编辑数据后。
    可以调用DataTable.AcceptChange()
      

  3.   

        for (int j = 0; j < dt.Rows.Count; j++)
               {   
                   DataRow dr = dt.Rows[j]; 
                   for (int h = 0; h < dt.Columns.Count; h++)
                   {
                       DataGridViewColumn dtColumn = new DataGridViewColumn();
                       dtColumn.Name  = dr[h].ToString();
                       gridHouse.Rows.Add(dtColumn);                  
                   }