今天弄了一个程序,用datagridview连接access数据库,显示出数据库中的内容。然后根据datagridview输入的数据对access进行更新。
虽然这个东西实现起来原理很简单,但是在实际操作的过程中却碰到了很多问题。现在就总结一下吧,希望能给向我这样的新手一点帮助,以后少走点弯路。
首先弄一个datagridview连接access并实现更新的经典模版:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace DataGridViewTest
{
public partial class Form1 : Form
{
private string m_ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + @"\DataBase\MyDB.mdb";
private DataSet ds;
private OleDbDataAdapter dataAdapter;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
OleDbConnection sqlCon = new OleDbConnection(m_ConStr);
string sql = "select * from Users";
dataAdapter = new OleDbDataAdapter(sql,sqlCon);
sqlCon.Close();
OleDbCommandBuilder cb = new OleDbCommandBuilder(dataAdapter);
ds = new DataSet();
dataAdapter.Fill(ds);
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
private void button1_Click(object sender, EventArgs e)
{
dataAdapter.Update(ds);
}
}
}
上面的程序非常简单,其基本功能就是实现datagridview连接access,并实现对access数据库的更新。
但是实际运行的时候会出错。。
出错1:当传递具有已修改行的 DataRow 集合时,更新要求有效的 UpdateCommand。