C# 将Excel导入MySql-外部表不是预期格式
我正在尝试将.xlsx文件(MS Excel 2007)导入数据库(我的SQL)。 它在我的本地PC上工作,但在应用程序在IIS6下运行的服务器PC上不工作 这是Try-Catch子句引发的错误消息C# 将Excel导入MySql-外部表不是预期格式,c#,.net,mysql,excel-2007,C#,.net,Mysql,Excel 2007,我正在尝试将.xlsx文件(MS Excel 2007)导入数据库(我的SQL)。 它在我的本地PC上工作,但在应用程序在IIS6下运行的服务器PC上不工作 这是Try-Catch子句引发的错误消息 An external table is not in the expected format. 我已安装Microsoft Access数据库引擎2010可再发行版 以及服务器PC中的2007 Office系统驱动程序 这是密码 private void vIPToolStripMen
An external table is not in the expected format.
我已安装Microsoft Access数据库引擎2010可再发行版
以及服务器PC中的2007 Office系统驱动程序
这是密码
private void vIPToolStripMenuItem_Click(object sender, EventArgs e)
{
fiDatabase = null;
ofdDatabase.Title = "Select VIP list to input";
ofdDatabase.Filter = "Excel Files|*.xlsx";
if (ofdDatabase.ShowDialog() == DialogResult.OK)
{
fiDatabase = new FileInfo(ofdDatabase.FileName);
if (fiDatabase.Exists)
{
DeleteVIPList();
lblDateCreated.Text = fiDatabase.CreationTime.ToShortDateString();
lblDatabase.Text = fiDatabase.Name;
lblLocation.Text = fiDatabase.DirectoryName;
lblSize.Text = String.Format("{0:0,0.0}", fiDatabase.Length) + " byte";
btnLoadDatabase.Visible = true;
file = new StreamReader(fiDatabase.FullName);
OleDbConnection theConnection =
new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\\VIPLIST092211.xlsx;Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\";");
try
{
theConnection.Open();
OleDbDataAdapter theDataAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", theConnection);
DataSet theDS = new DataSet();
DataTable dt = new DataTable();
theDataAdapter.Fill(dt);
theConnection.Close();
dgvCustomer.DataSource = dt.DefaultView;
lblRecord.Text = dgvCustomer.Rows.Count.ToString();
update = new Update();
update.connectionString = MyCon;
update.UpdateVIPList(dt);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
MessageBox.Show("No Database Selected");
}
}
}
我在“theConnection.Open()中找到了错误消息”
如果以前有人遇到过这个问题,请与我分享解决方案。
谢谢。我的建议
要从excel将批量数据上传到mysql,您可以使用csv格式,这更方便,并且不需要在服务器pc中安装任何驱动程序。以下是步骤
1) 使用“另存为”选项以csv格式保存excel
2) 订购
按表格格式列出
3) 运行以下查询
装载
数据本地填充“E:\FileName.csv”到表模板字段中
以“,”结尾,以“,”结尾的行\n”
(第1列、第2列、第3列、第4列)
但这取决于你的用例你能发布你的UpdatePlist方法吗 我不确定,但也许您需要在DataTable上循环以插入表中的每一行 例如:
foreach(DataRow drow in dt.Rows)
{
string mycolumnName = drow["ColumName"].ToString();
// Loop Per Row then Update
update = new Update();
update.UpdateVIPList(mycolumnNam);
}
在哪里
public bool UpdateVIPList(string mycolumnname)
{
//Your insert Logic Insert into Table (..) values (...)
//Do stuff
return true;
}
关于您说它只在本地主机上工作。问题可能出在您的连接字符串中,您指定了“Data Source=c:\VIPLIST092211.xlsx”作为当前主机上的确切路径。但是此文件也必须可以从服务器主机访问。您应该为您的客户端共享此文件。您可以发布您的UpdateVIPList方法吗?非常感谢谢谢你的回答。我真的很感谢你的帮助