【发布时间】:2014-06-15 09:21:40
【问题描述】:
我正在尝试插入以 csv 格式保存的数据。我尝试了以下代码,但问题是当我运行代码时它只保存第二行中的数据。任何人都可以更正我的代码以便我可以保存我的第一行的数据。
代码:-
protected void Page_Load(object sender, EventArgs e)
{
csvInsert();
}
public void csvInsert()
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectme"].ConnectionString);
conn.Open();
//DataTable dt = new DataTable("insert");
string filename = "C:\\Users\\Aowi\\Desktop\\asdf.csv";
SqlTransaction transaction = conn.BeginTransaction();
try
{
using (StreamReader file = new StreamReader(filename))
{
CsvReader csv = new CsvReader(file, true, '\t');
SqlBulkCopy copy = new SqlBulkCopy(conn, SqlBulkCopyOptions.KeepIdentity, transaction);
copy.DestinationTableName = "[Live]";
copy.WriteToServer(csv);
transaction.Commit();
}
}
catch (Exception ex)
{
transaction.Rollback();
}
finally
{
conn.Close();
}
}
在数据库中保存为:-
csv 文件是:-
1,Germany,? - ?,Portugal
2,half-time,(? - ?),
3
4,Milorad Mazic (Serbia),
5,Iran,? - ?,Nigeria
6,half-time,(? - ?),
7
8,Carlos Vera (Ecuador),
9,Ghana,? - ?,USA
10,half-time,(? - ?),
所需的输出是将 csv 文件中的每个数据插入到数据库中的每个单元格中。
【问题讨论】:
-
什么是
CsvReader?不确定它是如何工作的,因为它似乎它是您指定为分隔符(而不是逗号)的tab...
标签: asp.net csv sql-server-2012