异常信息:参数 ?_3 没有默认值。这是什么意思?这是对DGV修改后,保存所做的修改时发生的。但是在对第一个DGV操作时没有发生异常,这是对第二个DGV修改后,保存时发生的。代码如下:
 private void BC_KLX_Click(object sender, EventArgs e)
        {
            if(MessageBox.Show("确定保存所做的修改吗?","系统提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)
            {
                DataTable data_klx = (DataTable)this.GridView_KLX.DataSource;
                DataTable changedData_klx = data_klx.GetChanges();                if (changedData_klx !=null)
                {
                    dataAdapter_KLX.Update(changedData_klx);   发生异常。                            data_klx.AcceptChanges();
                }其余主要代码块:
                 //绑定和更新DGV
        private OleDbConnection connection = null;
        private OleDbCommand selectCommand = null;
        private OleDbDataAdapter dataAdapter = null;
        private OleDbCommand selectCommand_KLX = null;
        private OleDbDataAdapter dataAdapter_KLX = null;
        private string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;";
     ------------------------------------------------------------------------------
       //绑定消费项目
             connectionString = connectionString + @System.Configuration.ConfigurationSettings.AppSettings["connString"].ToString();
             connection = new OleDbConnection(connectionString);
             selectCommand = connection.CreateCommand();
             string sql_xfxm_bdgv = "select * from xfxmb ";
             selectCommand.CommandText = sql_xfxm_bdgv;
             dataAdapter = new OleDbDataAdapter();
             dataAdapter.SelectCommand = selectCommand;
             DataTable data = new DataTable();
             dataAdapter.Fill(data);
             this.GridView_XFXM.DataSource = data;             OleDbCommandBuilder builder = new OleDbCommandBuilder(dataAdapter);
             dataAdapter.UpdateCommand = builder.GetUpdateCommand();
             dataAdapter.InsertCommand = builder.GetInsertCommand();
             dataAdapter.DeleteCommand = builder.GetDeleteCommand();
             this.GridView_XFXM.Columns[0].HeaderCell.Value = "序号";
             this.GridView_XFXM.Columns[1].HeaderCell.Value = "推荐日期";
             this.GridView_XFXM.Columns[2].HeaderCell.Value = "消费名称";
             this.GridView_XFXM.Columns[2].Width = 230;
             this.GridView_XFXM.Columns[3].HeaderCell.Value = "金额";
             this.GridView_XFXM.Columns[4].HeaderCell.Value = "操作员";
                          //绑定会员卡类型
             selectCommand_KLX = connection.CreateCommand();
             string sql_klx_bddgv="select * from hyklxszb";
             selectCommand_KLX.CommandText = sql_klx_bddgv;
             dataAdapter_KLX = new OleDbDataAdapter();
             dataAdapter_KLX.SelectCommand = selectCommand_KLX;
             DataTable data_klx = new DataTable();
             dataAdapter_KLX.Fill(data_klx);
             this.GridView_KLX.DataSource = data_klx;             OleDbCommandBuilder builder_klx = new OleDbCommandBuilder(dataAdapter_KLX);
             dataAdapter_KLX.UpdateCommand = builder.GetUpdateCommand();
             dataAdapter_KLX.InsertCommand = builder.GetInsertCommand();
             dataAdapter_KLX.DeleteCommand = builder.GetDeleteCommand();
             this.GridView_KLX.Columns[0].HeaderCell.Value = "序号";
             this.GridView_KLX.Columns[1].HeaderCell.Value = "卡类型";
             this.GridView_KLX.Columns[1].Width = 240;
             this.GridView_KLX.Columns[2].HeaderCell.Value = "消费类型";
             this.GridView_KLX.Columns[3].HeaderCell.Value = "卡中次数";
             this.GridView_KLX.Columns[4].HeaderCell.Value = "办卡费用";
---------------------------------------------------------------------------------------------
          private void SC_KLX_Click(object sender, EventArgs e)
        {
            if(MessageBox.Show("确定删除该信息吗?","系统提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)
            {
                foreach (DataGridViewRow r in GridView_KLX.SelectedRows)
                { 
                    if(!r.IsNewRow)
                    {
                        GridView_KLX.Rows.Remove(r);
                    }
                }
            }
        }        private void BC_KLX_Click(object sender, EventArgs e)
        {
            if(MessageBox.Show("确定保存所做的修改吗?","系统提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)
            {
                DataTable data_klx = (DataTable)this.GridView_KLX.DataSource;
                DataTable changedData_klx = data_klx.GetChanges();                if (changedData_klx !=null)
                {
                    dataAdapter_KLX.Update(changedData_klx);                    data_klx.AcceptChanges();
                }            }
        }
      
            }