就是显示出DATAGRIDVIEW数据后,直接修改,添加,删除数据在DGV里边,应该怎么实现?有点纳闷?求解,谢谢~

解决方案 »

  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.   

    上面程序的这部分是更新的逻辑,程序用SqlCommandBuilder实现了自动生成更新逻辑:    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);
            }
        }
      

  3.   

    DataSet ds = new DataSet();
    SqlDataAdapter sda;SqlCommandBuilder scb = new SqlCommandBuilder(sda);
    sda.Update(ds);
    this.dataGridView1.DataSource = ds.Tables[0];
      

  4.   


    这个代码应该写在哪个事件里边?是DATAGRIDVIEW控件的ADDROW事件吗?试了不行