兄弟,还有个地方你要注意啊:你在代码中写到:
private void FormMain_Load(object sender, EventArgs e)
{
string file_name = Application.StarupPath + @"\test.mdb"; //本地数据库在bin里面
string password = "123";
string ConnectionString = string.Format("Provider=Microsoft.JET.OLEDB.4.0;Data Source='{0}';Persist Sercurity Info=false; JET OLEDB:Database Password={1}", file_name, password);
conn = new OleDbConnection(ConnectionString); string sql = "SELECT * FROM test";//test为表名
da = new OleDbDataAdapter(sql, conn);
ds = new DataSet();
da.Fill(ds);
cb = new OleDbCommandBuilder(da);
}
标红色粗体部分你这是在窗体加载时显示全部的数据,这个没有必要,而且速度也会很慢的,如果你是想导入数据的话就直接用:string sql="SELECT * FROM test WHERE 1=2";这样就会返回一个空行的数据集,里面就没有数据,如果导入成功后再导入另个一个excel档案就要清除ds里面的内容,否则会出现数据重复的问题(因为之前ds已经读取一个档案的数据,且这个档案的内容已经导入到数据库,再次导入肯定会出现主键冲突的问题)ds.Tables["表名"].Rows.Clear()应该就可以了