2010-10-07 37 views
4

我正在使用我的自定義CSVDataReader:IDataReader {}在數據庫表中插入批量值。SqlBulkCopy無法解析數據庫表中的「0」,「1」布爾值到BIT

除了位(從「1」/「0」)以外的每個數據類型都被完全解析。我正在以下錯誤 「從數據源類型字符串的值不能被轉換爲類型比特」如果我改變這些值在解析0或1作爲布爾

爲「true」 /「假」。它沒有任何問題。

我無法更改CSV文件。目前,我在迭代過程中將該特定列從「0」/「1」替換爲「false」/「True」。但這不是一個優雅的解決方案。

請幫忙!

感謝 Panks

+0

有同樣的問題,你有沒有永遠解決它? – NibblyPig 2013-08-30 11:31:07

回答

0

我猜你發送"1""0"而不是10

僅供參考,SQL Server將接受truefalse對位

+0

CSVDataReader使用StreamReader讀取文件,它逐行讀取並將每行解析爲字符串。所以所有的列值都是字符串。 this.stream =新的StreamReader(文件名);在Read()方法中,我將行字符串[] currentRow = stream.ReadLine()。Split(','); – Panks 2010-10-08 00:57:29

+0

SQL不會用引號解析「true」或「false」,所以* something *不同 – gbn 2010-10-08 04:48:37