如果你的datagridview连接到数据库,你不想使用SQL,我可以假设它是绑定到数据源。如果您通过Visual Studio Designer执行此操作,则应该有TableAdapter
(如果自动生成,可能称为YOURTABLENAMETableAdapter)和BindingSource
(如果自动生成,可能称为YOURTABLENAMEBidingSource)。
要更新数据库,您必须调用BindingSource.EndEdit()然后TableAdapter.Update()。完成此操作后,您可以刷新数据。
编辑
现在您提供更好的信息,我可以给你一个更好的答案。 在我之前的回答中,我假定你已经用设计器创建了所有东西,因为你不想使用SQL来进行更新。显然我错了。
为了达到您的要求,您应该使用OleDbCommandBuilder
类,只要给出SELECT
命令,就会自动为您的表生成简单的编辑命令(插入/更新/删除)。
这里是使用你的代码的例子:
dsView = new DataSet();
adp = new OleDbDataAdapter("SELECT * FROM Items", Conn);
OleDbCommandBuilder cb = new OleDbCommandBuilder(adp);
adp.Fill(dsView, "Items");
this.dataGridView1.DataSource = dsView.Tables["Items"].DefaultView;
//adp.Dispose(); You should dispose you adp only when it is not loger needed (eg: after performing the update)
现在,你perfomed更改的数据后,你可以调用
adp.Update(dsView, "Items");
您必须提供绑定的对象更好的细节以及您实际上在不去数据库的情况下尝试更新的内容。 – leppie 2010-10-26 10:51:55