我已經編寫了一個程序,該程序使用OleDB
查詢來填充DataTable
,然後使用BulkLoader
將其加載到MySQL數據庫中。我遇到的問題是將OleDB布爾類型列轉換爲MySQL中的等效項。我知道MySQL中沒有BOOL
,所以我嘗試使用TINYINT
,但沒有運氣。我認爲問題在於,我需要1
或0
才能使用BulkLoader
TRUE
和FALSE
。將DataTable列從布爾轉換爲Int
這是中間CSV文件中列的樣子;
我以爲會是這樣做僅僅是寫一個foreach
循環,通過雲的一個簡單的方法,使每一個TRUE = 1
和FALSE = 2
,這樣的事情;
foreach (DataRow column in dTable.Rows)
{
if (Convert.ToBoolean(column[16]) == true)
{
column[16] = 1;
}
else
{
column[16] = 0;
}
}
這完全相同的輸出端然而如上所示的圖像,但它仍然解析一切TRUE
和FALSE
代替1
或0
。我現在想,我可能必須將DataTable
列的類型從布爾型轉換爲整型,但我不確定如何做到這一點,或者如果它是最簡單的方法。
這是應該預料的。該列的DataType是布爾型而不是int型。不知道,但您似乎需要更改列的數據類型或創建一個int類型的新列 – Steve
一旦有數據,就不能更改列類型。否則,請使用'dTable.Columns [16] .DataType = typeof(int);' – Irshad
如果您在以下答覆中看到答案,請將其標記爲答案。請閱讀本文: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – StepUp