目的:要将数据从excel导入到ms Access(.mdb)数据库。
参考: https : //www.mikesdotnetting.com/article/79/import-data-from-excel-to-access-with-asp-net
技术: C#.net Windows窗体
错误: “ Microsoft Jet数据库引擎找不到输入表或查询'Persons $'。确保它存在并且其名称拼写正确。”
码:
private void button6_Click(object sender, EventArgs e)
{
string Access = @"c:\exportdb\DestinationDB.mdb";
string connect = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\exportdb\DestinationDB.mdb;";
using (OleDbConnection conn = new OleDbConnection(connect))
{
using (OleDbCommand cmd = new OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO [MS Access;Database=" + Access + "].[Persons] SELECT * FROM [Persons$]";
conn.Open();
cmd.ExecuteNonQuery();
}
}
}
注意:我创建了一个名为“ DestinationDB.mdb”的MS Access数据库,表名称为“ Persons”,具有以下字段:ContactID,FirstName,SecondName,Age
此后,我将其导出到excel以保留标题结构。
导出此excel后,我手动为其添加了10条记录。
这两个文件都位于“ c://exportdb/source.xls”和“ c://exportdb/DestinationDB.mdb”下。
请帮助我解决上述错误。
谢谢!
您的连接字符串与您遵循的引用不匹配:
您的连接字符串:
string connect = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\exportdb\DestinationDB.mdb;";
他的连接字符串具有扩展属性,并且正在指定Excel 8.0:
string connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Excel +";Extended Properties=Excel 8.0;";
另一个问题是您的数据源是Access数据库DestinationDB.mdb,请注意您遵循的引用如何将Excel指定为数据源。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句