sqlbulkcopy - c# - 给定的 ColumnName 'xxxxxxx' 与数据源中的任何列都不匹配
问题描述
在我的代码中有一个问题,但我看不出这是什么问题。列名是逐字相同的,它正在工作,如果我在 csv 文件中使用 1 列,但是当我尝试超过 2-3 列字段时,它会给出以下错误。我检查了很多文章,所以我无法修复错误。可能发生的是这条线。DB 已经使用类似的字段创建。
private void DBaktar()
{
string SQLServerConnectionString = "Server =.\\SQLEXPRESS; Database = Qiti; User Id = sa; Password = 7731231xx!!;";
string CSVpath = @"D:\FTP\"; // CSV file Path
string CSVFileConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};;Extended Properties=\"text;HDR=Yes;FMT=Delimited\";", CSVpath);
var AllFiles = new DirectoryInfo(CSVpath).GetFiles("*.CSV");
string File_Name = string.Empty;
foreach (var file in AllFiles)
{
try
{
DataTable dt = new DataTable();
using (OleDbConnection con = new OleDbConnection(CSVFileConnectionString))
{
con.Open();
var csvQuery = string.Format("select * from [{0}]", file.Name);
using (OleDbDataAdapter da = new OleDbDataAdapter(csvQuery, con))
{
da.Fill(dt);
}
}
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(SQLServerConnectionString))
{
bulkCopy.ColumnMappings.Add("LKod", "LKod");
bulkCopy.ColumnMappings.Add("info", "info");
bulkCopy.ColumnMappings.Add("Codex", "Codex");
bulkCopy.ColumnMappings.Add("LthNo", "LthNo");
bulkCopy.ColumnMappings.Add("Datein", "Datein");
bulkCopy.DestinationTableName = "U_Tik";
bulkCopy.BatchSize = 0;
bulkCopy.EnableStreaming = true;
bulkCopy.WriteToServer(dt);
bulkCopy.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
错误异常;
给定的 ColumnName 'LKod' 与数据源中的任何列都不匹配。
例如堆栈跟踪;
在 System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerCommon(Int32 columnCount) 在 System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken) 在 System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table, DataRowState rowState) 在 System .Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable 表)
解决方案
我找到了一个解决方案并且 100% 正确。下面的链接,我希望成为需要它的路径。
https://johnnycode.com/2013/08/19/using-c-sharp-sqlbulkcopy-to-import-csv-data-sql-server/
推荐阅读
- reactjs - 如何正确访问组件内的道具
- node.js - 根据条件停止和开始执行 cron-job-manager (node-cron)
- javascript - 达到 min-max 时,在递增/递减按钮上添加/删除“禁用”属性
- python - Seaborn X 轴分类数据
- java - 如何使 Firebase ".info/connected" 和 .onDisconnect() 相互准确?
- asp.net - 当 web.config 可见属性设置为 false 时,Visual Studio 不运行
- python - Python Multiprocessing - 我们可以将(itertools.islice)可迭代直接传递给pool.imap而不转换为列表吗?
- python - Django中的循环对象
- python - Pycharm - 设置用户名和密码登录脚本
- python-3.7 - 用户属性更新时如何触发事件?