现在在做一点,windows forms 与数据库的操作。使用 DataGridView 控件连接 SQL Server 2008。在数据库中有一个表的id列是主键也设为自动增长了,这样如果在数据库中直接插入数据的时候,可以不管id这一列的值。使用 DataGridView 显示数据的时候,ID列是不可编辑的,这倒也没什么问题,因为本来就没打算编辑。但是当编辑好其他列的值,鼠标移出这一行,进行数据提交的时候,却报错了,说ID列不允许空值。有没哪位知道是为什么啊?先谢过各位了。

解决方案 »

  1.   

    试试不要显示这个ID列看看。这个是.net的吧,我转到.net了。
      

  2.   


    对表格设置自增列,设置后编辑的时候将会自动增量,以下是设置为自动减量(是担心和现有数据冲突所以自动减量),无所谓的,不影响保存后的效果,数据库会重新定义它的值。dtTable.Columns[ID].AutoIncrement     = true;
    dtTable.Columns[ID].AutoIncrementStep = -1L;
      

  3.   


    Sorry,下午不是一直在电脑旁... 也多谢提醒,以后会发帖之后会注意的...
      

  4.   


    啊,刚刚理解错了,现在明白了。这个账号也是以前注册,之后一直没用过,当然csdn来的也比较少,以后会常来的,看到能回的贴也会努力回的,多谢提醒。另外还有一个问题,不知可不可以在这里顺便问一下,就是:我编辑了 GridView 里面的东西之后,怎么保存到数据库呢,是需要注册一个什么函数吗?谢谢!!!
      

  5.   


    用sql了。虽然很麻烦,因为改动的行可能很多,不是一行我们用自己开发的类库,传入一个DataTable、表名、主键值就OK了,增删改全部更新的数据库中。