2013-11-19 1 views
0

У меня есть listЧтение CSV-файла с фильтром типа данных несоответствием

public List<string> strImportRequiredFields = new List<string> { "ENTRY/CMD #", "PART #", "REFERENCE 1", "REFERENCE 2", "REFERENCE 3", "DUTY PER" }; 

Теперь это мой код

string strFilter = string.Join(" = ' ' OR ", new UploadFields().strImportRequiredFields.Select(x => "[" + x.ToString() + "]").ToArray()); 
    strFilter += " = ' '"; 

без фильтра его ход и дает все строки

фильтра значение является

"[ВХОД/CMD #] = '' ИЛИ ​​[ЧАСТЬ #] = '' ИЛИ ​​[ССЫЛКА 1] = '' ИЛИ ​​ [ССЫЛКА 2] = '' ИЛИ ​​[ССЫЛКА 3] = '' ИЛИ ​​[СБОР ЗА] = ' «»

string xlConn = ""; 
string strPath = System.Configuration.ConfigurationManager.AppSettings["UploadPath"]; 
xlConn = new UploadFields().returnConnectionForCSV(strPath); 
OleDbConnection oledb_conn = null; 
oledb_conn = new OleDbConnection(xlConn); 
OleDbDataAdapter oledb_ad = new OleDbDataAdapter("SELECT * FROM [" + Path.GetFileName(filename) + "]" + " Where " + strFilter , oledb_conn); 
DataTable dtImport = new DataTable(); 
oledb_ad.Fill(dtImport); 

Это Выдает Error

Несоответствие типов данных в выражении критериев.

образец CSV Flie является

ENTRY/CMD #,ENTRY TYPE,PORT,ENTRY DATE,COUNTRY OF ORIGIN,IMPORT DATE,EXPORTING COUNTRY,IMPORTER #,IMPORTER OF RECORD,TOTAL MPF,HMF,TOTAL ENTERED VALUE,BOX 37,Box 40,CD #,REC'D DATE,USED DATE,REFERENCE 1,REFERENCE 2,REFERENCE 3,REFERENCE 4,REFERENCE 5,REFERENCE 6,REFERENCE 7,REFERENCE 8,DIRECT ID,DUTIABLE,NONDUTIABLE,PART #,ALTERNATE PART #,DESCRIPTION,IMPORT QTY,AVAIL QTY,OTHER QTY,UEV 1,SPECIFIC RATE,HTSUS,LINE #,UEV 2,AD VALOREM RATE,UEV 3,OTHER RATE,UNIT OF MEASURE,BOX 37 CHECK,DUTY PER,DUTY CALCULATION CODE,YIELD,CLAIMED STATUS,Liquidation Date,RECONCILIATION ENTRY #,RECONCILIATION ENTRY DATE,PROTEST #,PROTEST DATE,POST ENTRY ADJUSTMENT DATE,DUTY STATEMENT #,DUTY STATEMENT PAID DATE,WAREHOUSE WITHDRAWAL ENTRY #,WAREHOUSE WITHDRAWAL DATE,ORIGINAL INVOICE CURRENCY VALUE,CURRENCY CODE,Currency CONVERSION RATE,Share Partner Code 
55442435982,,1704,,,7/4/2010,,,,25,,10746,528.02,,,7/5/2010,,530250010,6231440010,82042000,,,,,,,,,,,"869/4 SW 8,0 x 65 mm CZ",20,20,,0.73,,8204200000,,,0.09,,,EA.,,0.0657,7,,,,,,,,,,,,,,,, 
55442435982,,1704,,,7/4/2010,,,,25,,10746,528.02,,,7/5/2010,,530250020,6231440020,82042000,,,,,,,,,05060401002,,"869/4 SW 6,0 x 50 mm CZ",20,20,,0.63,,8204200000,,,0.09,,,EA.,,0.0567,7,,,,,,,,,,,,,,,, 
55442435982,,1704,,,7/4/2010,,,,25,,10746,528.02,,,7/5/2010,,,6231440030,82042000,,,,,,,,,05060421002,,"869/4 M SW 6,0 x 50 mm CZ",20,20,,0.73,,8204200000,,,0.09,,,EA.,,,7,,,,,,,,,,,,,,,, 

же код работает для XLSX

Любое предложение

Спасибо

+0

Это связано с тем, что форматирование некоторых столбцов в excel отличается при преобразовании в csv? – Milen

+0

Я не конвертирую, я просто читаю csv-файл с каким-то фильтром –

ответ

0

Критерии Несовпадение Обычно означает, что данные, которые вы пытаетесь помещать в базу данных или запрос не могут быть приняты, потому что база данных ожидает другую pe данных. В вашем случае ваш запрос должен соответствовать каждому типу поля

+0

Его общий смысл дорогой, здесь тот же код работает на excel, а его получение не помещается в базу данных –

Смежные вопросы