首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当将csv上载到sql server时,“给定的ColumnMapping与源或目标中的任何列不匹配”。

当将csv上载到sql server时,“给定的ColumnMapping与源或目标中的任何列不匹配”。
EN

Stack Overflow用户
提问于 2018-09-02 13:14:25
回答 1查看 532关注 0票数 1

通过将CSV转换为Datatable,然后将此Datatable插入到SQL数据服务器,我试图将CSV上载到SQL服务器。CSV被正确地读取到Datatable中,但是当将数据插入到SQL时,会发生此错误。

“给定的列映射与源或目标中的任何列不匹配”

这是我的代码:

代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

发布于 2018-09-02 13:59:09

应:

代码语言:javascript
复制
foreach (DataColumn column in csvFileData.Columns)
                    s.ColumnMappings.Add(column.ColumnName, column.ColumnName);

DataTables和大多数ADO.NET类型先于泛型集合,因此当foreach-ing其集合(如DataTable.Columns)时,您必须在foreach中提供目标类型以访问其属性和方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52137387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档