DataTable dt = (dataGridView1.DataSource as DataTable);
            MessageBox.Show(dt.Rows.Count.ToString());
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                dt.Rows[i]["heck"] = 1;
            }
            try
            {
                OleDbCommandBuilder SCB = new OleDbCommandBuilder(SDA);
                SDA.Update(dt);
            }
                 
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
如果之前没有执行过下面这段代码就不会出错:
           sqlstr = "update sites set ks_zt='" + zczt + "' where id=" + dataGridView1.Rows[id_i].Cells[0].EditedFormattedValue;
           executesql(sqlstr);
求真相与解决方法:
access表有主键,
字段id为自动编号;