我正在尝试将CSV文件中的数据插入到本地Access数据库的表中,但CSV文件与我的数据库位于不同的位置。 insert语句正在尝试插入位于Windows临时文件夹中的CSV文件,但我一直收到错误消息,指出无法找到该对象(CSV文件)。感谢帮助,谢谢!
以下是我收到的错误:
Microsoft Access数据库引擎找不到对象' S_M_85010747_201605.csv'。确保对象存在,并且您正确拼写其名称和路径名称。如果' S_M_85010747_201605.csv'不是本地对象,请检查您的网络连接或联系服务器管理员。
以下是我的代码:
//CSV file name
string csvFile = ddlReportType.Text.Substring(0, 1) + "_"
+ ddlDateType.Text.Substring(0, 1) + "_" + lblVendorID.Text + "_" + txtDate.Text + ".csv";
//Path for temporary folder
string marFolder = Path.GetTempPath() + @"\MobileAppReports";
//CSV file in temporary folder path
string marCSVfolderPath = marFolder + @"\" + ddlReportType.Text.Substring(0, 1) + "_"
+ ddlDateType.Text.Substring(0, 1) + "_" + lblVendorID.Text + "_" + txtDate.Text + ".csv";
var fileNameToInsert = Path.GetFileName(marCSVfolderPath);
if (File.Exists(marCSVfolderPath))
{
OleDbCommand cmdBulk = new OleDbCommand(@"INSERT INTO SalesSummary" +
@"SELECT * FROM [Text;FMT=Delimited;HDR=Yes;ACCDB=Yes;Database=C:\Desktop].[" + fileNameToInsert + "]", MyConn);
MyConn.Open();
cmdBulk.ExecuteNonQuery();
MyConn.Close();
Directory.Delete(marFolder, true);//Deletes the csv file in the temp folder
}
else
{
MessageBox.Show(csvFile + " does not exist in the temp folder.");
}
答案 0 :(得分:0)
我可以看到你定义了csv文件路径和临时文件路径,但我没看到你将csv复制到临时路径的位置,所以不知道它是如何通过File.Exists阶段的。
此外,您的查询字符串仅定义fileNameToInsert而不是整个路径。正如其他人所说,看起来您也将数据库路径定义为csv文件。
这是所有的代码吗?真的觉得你错过了这里的一些东西。