我在添加按钮中代码如下:
 private void buttonAdd_Click(object sender, EventArgs e)
        {   
           dataGridView1.AllowUserToAddRows = true;
           dataGridView1.ReadOnly = true;
            
        }
 原本是想新加一行,让用户自行添加数据,但这样做的话用户也可以修改原来的数据,请问有什么办法只允许用户更改新添加行的数据?

解决方案 »

  1.   

    //先查询id判断id是否存在
    //建立数据库连接
    OleDbCommand cmd=new OleDbCommand("select Count(*) form tablename where '?'",mc);
    mc.open();
    if((int)cmd.ExecuteScalar==0)
    {
     //插入数据
    }
    else
    {
    //禁止修改
    }
      

  2.   

    private void datagridviewadd(DataGridView mydatagrid, int cellindex, string tabname,int cellindex1,int cellindex2,int cellindex3,int cellindex4,int cellindex5)
            {
                mydatagrid.ReadOnly = false;
                mydatagrid.EditMode = DataGridViewEditMode.EditOnEnter;
                ds.Tables[tabname].Rows.Add(ds.Tables[tabname].NewRow());
                mydatagrid.DataSource = ds.Tables[tabname];            for (int i = 0; i < mydatagrid.Rows.Count - 1; i++)
                {
                    mydatagrid.Rows[i].ReadOnly = true;
                }
                mydatagrid.Rows[mydatagrid.Rows.Count - 1].ReadOnly = false;
                mydatagrid.CurrentCell = mydatagrid.Rows[mydatagrid.Rows.Count - 1].Cells[cellindex];  
                mydatagrid.BeginEdit(false);
                }
      

  3.   

    private void datagridviewadd(DataGridView mydatagrid, int cellindex, string tabname)
            {
                mydatagrid.ReadOnly = false;
                mydatagrid.EditMode = DataGridViewEditMode.EditOnEnter;
                ds.Tables[tabname].Rows.Add(ds.Tables[tabname].NewRow());
                mydatagrid.DataSource = ds.Tables[tabname];            for (int i = 0; i < mydatagrid.Rows.Count - 1; i++)
                {
                    mydatagrid.Rows[i].ReadOnly = true;
                }
                mydatagrid.Rows[mydatagrid.Rows.Count - 1].ReadOnly = false;
                mydatagrid.CurrentCell = mydatagrid.Rows[mydatagrid.Rows.Count - 1].Cells[cellindex];  
                mydatagrid.BeginEdit(false);
                }
    上面那个是我用的,直接贴过来的,参数多了,不好意思!