我在用visual studio2010和sql server2008做一个课程设计
我想实现编辑datagridview中的数据之后,按下更新按钮直接更新数据,下面是更新按钮的代码。
   private void button6_Click(object sender, EventArgs e)
        {
            this.Invalidate();
            this.bindingSource1.EndEdit();
            this.MySqlDataAdapter.Update(MyDataSet, MyTable);
            this.DisPlayNumber();
        }
这样的话,如果我按下更新按钮程序就会错误,提示:
对于多个基表不支持动态 SQL 生成。

解决方案 »

  1.   

    多建几个DataSet,每个DataSet里只放一个DataTable,行吧
      

  2.   

    private Boolean dbUpdate(OleDbDataAdapter adapter, DataGridView dgselect)
            {
                DataTable dtUpdate = new DataTable();
                OleDbCommandBuilder CommandBuiler;
                adapter.Fill(dtUpdate);
                dtUpdate.Rows.Clear();
                System.Data.DataTable dtShow = new System.Data.DataTable();
                DataView dv;
                dv = new DataView();
                dv = (DataView)dgselect.DataSource;
                dtShow = (DataTable)dv.Table;
                int p1 = dtShow.Rows.Count;
                for (int i = 0; i < dtShow.Rows.Count; i++)
                {
                    dtUpdate.ImportRow(dtShow.Rows[i]);
                }
                int num = dtUpdate.Rows.Count;
                if (myConnection.State == ConnectionState.Closed)
                {
                    myConnection.Open();
                }
                try
                {
                    CommandBuiler = new OleDbCommandBuilder(adapter);
                    adapter.UpdateCommand = CommandBuiler.GetUpdateCommand();
                    adapter.Update(dtUpdate);
                    myConnection.Close();            }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.ToString());
                    return false;
                }            dtUpdate.AcceptChanges();
                return true;        }