【问题标题】:how to insert data from csv file into database using asp.net如何使用asp.net将csv文件中的数据插入数据库
【发布时间】: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


【解决方案1】:

看起来 CSV 阅读器需要一个标题行。尝试在顶部添加标题,看看是否可以解决。也尝试将 FALSE 传递给 CSVReader。看起来该标志可能用于表示您是否有标题行。

【讨论】:

  • 我将 false 传递给 csvreader,它现在也显示了第一行,但现在出现了另一个问题,它是在单列上,而不是在数据库中拆分成多列。你能帮忙吗?
猜你喜欢
  • 2014-05-03
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 2019-04-06
  • 2023-02-11
相关资源
最近更新 更多