在datagridview中更改数据,保存不到数据库中。
全部代码如下
private OleDbConnection OleConn = new OleDbConnection ();
private OleDbDataAdapter OleAdapter;
DataSet DSet =new DataSet ();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string strCon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\database.mdb";
OleConn.ConnectionString = strCon;
OleConn.Open();
string strSql = "SELECT * FROM tablename";
OleAdapter = new OleDbDataAdapter(strSql, OleConn);
OleAdapter.Fill(DSet, tablename);
BindingSource BSource = new BindingSource();
BSource.DataSource = DSet.Tables[tablename];
dataGridView1.DataSource = BSource;
}
private void btnSave_Click(object sender, EventArgs e)
{
if (DSet.Tables[tablename].GetChanges() != null)
{
OleAdapter.Update(DSet.Tables[tablename]);
DSet.AcceptChanges();
}
}
说明:数据库中的表没有主键;我查了一些文章,也请教过一些人,他们说直接把oledbadaper更新就可以了,但是我的就不行,苦恼啊。
目的:我只是想直接在datagridview上修改,然后保存到数据库中。
错误提示:当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。