使用ASP.NET将CSV文件导入数据库 [英] Import CSV file to database using ASP.NET

查看:86
本文介绍了使用ASP.NET将CSV文件导入数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我正在尝试将值从CSV导入到SQL Server 2008数据库



我在表中插入3列。

来自CSV文件的两个值。一个值来自程序。

当我运行我的代码时,行插入空值



但我的列数显示为3 。



以下是我的代码



Hi,

I am trying to import values from CSV to SQL server 2008 Database

I am inserting 3 columns to table.
Two values from CSV file. One value is from program.
When I run my code, rows are inserted with null values

But my column count is showing as 3.

Below is my code

i = 0;
fil="Desktop";
string line=string.Empty;
StreamReader sr = new StreamReader(filepath);
line = sr.ReadLine();
line = sr.ReadLine();

string[] value = line.Split(',');
DataTable dt = new DataTable();
DataRow row;
i=0;
foreach (string dc in value)
{
    if (i == 0)
    {
        dt.Columns.Add(new DataColumn(fil));
       // dt.Columns.Add(new DataColumn(DateTime.Now.ToString()));
        dt.Columns.Add(new DataColumn(dc));
        i++;
    }
}
string value1;
while ( !sr.EndOfStream )
{
    value1 = sr.ReadLine().Split(',')[0];
    value = new string[] { value1 };
    dt.Columns.Add(new DataColumn(value1));
    if(value.Length == (dt.Columns.Count)-3)
    {
        row = dt.NewRow();
        row.ItemArray = value;
        dt.Rows.Add(row);
    }
}
SqlBulkCopy bc = new SqlBulkCopy(con.ConnectionString,    SqlBulkCopyOptions.TableLock);
bc.DestinationTableName = "mssp_eps_compliance_report";
bc.BatchSize = dt.Rows.Count;
con.Open();
bc.WriteToServer(dt);
bc.Close();
con.Close();



请帮助。



提前致谢。


Please help.

Thanks in advance.

推荐答案

我想你忘记将ColumnMappings添加到你的SqlBulkCopy对象。
I guess you forget to add ColumnMappings to your SqlBulkCopy object.


这篇关于使用ASP.NET将CSV文件导入数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆