我正在尝试插入以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文件中的每个数据插入数据库中的每个单元格。
答案 0 :(得分:0)
看起来CSV阅读器需要标题行。尝试在顶部添加标题,看看是否可以解析。尝试将FALSE传递给CSVReader。看起来该标志可能用于表示您是否有标题行。