使用ASP.NET将CSV文件导入数据库 [英] Import CSV file to database using ASP.NET
本文介绍了使用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屋!
查看全文