CSV导入SQL

爱妃大大大 2013-08-22 11:27:57
大家好,

首先声明,本人是经过在网上仔细查找后,才来这里发帖的。



private void 导入_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Title = "请选择要导入的文件:";
dlg.Filter = "Csv文件(*.csv)|*.csv|所有文件|*.*";
dlg.Multiselect = true;

if (dlg.ShowDialog() == DialogResult.OK)
{
string[] FileNames = dlg.FileNames;

foreach (string FileName in FileNames)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Text;Data Source=" + FileName);

DataSet DS = new DataSet();

string str = string.Format("select * from {0}", FileName);

OleDbDataAdapter Adapter = new OleDbDataAdapter(str, conn);

OleDbCommandBuilder Builder = new OleDbCommandBuilder(Adapter);

Adapter.Fill(DS, "FileName");

int Total = DS.Tables[0].Rows.Count;

Builder.Dispose();
Adapter.Dispose();
DS.Dispose();
conn.Dispose();

MessageBox.Show(Total.ToString());
}
}
}

程序总是报错,FileName不是一个有效的路径。麻烦高人指点一下。

谢谢大家。
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
clark_kidd 2013-08-22
  • 打赏
  • 举报
回复
要带盘符:\目录\的物理路径试试
爱妃大大大 2013-08-22
  • 打赏
  • 举报
回复
明白了。 在FileDialog中获取的FileName,需要拆成两部分传入,这与Excel,Access和TXT导入都有区别。 谢谢。
feiniao19830822 2013-08-22
  • 打赏
  • 举报
回复
你传入的参数不正确。

OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Text;Data Source=" + FileName);
FileName应该换成文件夹。比如"f:\\"

string str = string.Format("select * from {0}", FileName);
FileName应该换成文件名。比如"001.csv"

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧