通过将CSV转换为Datatable,然后将此Datatable插入到SQL数据服务器,我试图将CSV上载到SQL服务器。CSV被正确地读取到Datatable中,但是当将数据插入到SQL时,会发生此错误。
“给定的列映射与源或目标中的任何列不匹配”
这是我的代码:
static void InsertDataIntoSQLServerUsingSQLBulkCopy(DataTable csvFileData)
{
System.IO.File.Create("C:\\Users\\Rana\\Desktop\\inside.txt");
using (SqlConnection dbConnection = new SqlConnection("Data Source=DESKTOP-N7OIK1O\\MSSQLSERVER02;Initial Catalog=nokia_Alarm;Integrated Security=SSPI;"))
{
System.IO.File.Create("C:\\Users\\Rana\\Desktop\\inside1.txt");
dbConnection.Open();
using (SqlBulkCopy s = new SqlBulkCopy(dbConnection))
{
System.IO.File.Create("C:\\Users\\Rana\\Desktop\\inside2.txt");
s.DestinationTableName = "csv_Table";
foreach (var column in csvFileData.Columns)
s.ColumnMappings.Add(column.ToString(), column.ToString());
s.WriteToServer(csvFileData);
System.IO.File.Create("C:\\Users\\Rana\\Desktop\\inside4.txt");
}
}
}我不知道问题在哪里?
它在DB连接中吗?
(SqlConnection dbConnection =新SqlConnection(“数据源=桌面-N7OIK1O\MSSQLSERVER02 02;初始Catalog=nokia_Alarm;Integrated Security=SSPI)
发布于 2018-09-02 13:59:09
应:
foreach (DataColumn column in csvFileData.Columns)
s.ColumnMappings.Add(column.ColumnName, column.ColumnName);DataTables和大多数ADO.NET类型先于泛型集合,因此当foreach-ing其集合(如DataTable.Columns)时,您必须在foreach中提供目标类型以访问其属性和方法。
https://stackoverflow.com/questions/52137387
复制相似问题