2009-11-08 42 views
0

任何人都可以幫助將C#中的字符串值轉換爲Sql中的等價物。我試圖將數據表的值批量複製到Sql表中。我在數據表中的所有值都是字符串格式。當我嘗試批量複製到SQL表時,我得到了位數據類型列的錯誤。任何人都可以在將批量複製到SQL表之前發佈C#代碼以將字符串轉換爲位類型。在插入數據庫之前將字符串轉換爲位

感謝, Vix指數

回答

0

SQL Server中的bit數據類型達在C#中bool數據類型相匹配。因此,只需將您的字符串轉換爲bool s(使用bool.Parse()或您最喜歡的替代方法),即可設置。

+0

謝謝,丹尼爾。如何將字符串轉換爲浮動相同scenario.I嘗試使用Convert.ToDouble(str);但它沒有工作。請幫助 – vix 2009-11-08 05:59:59

5

如果你的字符串是「真」與「假」(忽略大小寫和空格),這將工作:

bool bit = bool.Parse(str); 

如果你的字符串是別的東西,你可以使用:

bool bit = !string.IsNullOrEmpty(str) && 
    (str[0]=='Y' || str[0]=='y' || str[0]=='T' || str[0]=='t' || str[0]=='1'); 

SQL需要一個bool值。

+0

謝謝雷。如何將字符串轉換爲浮動相同scenario.I嘗試Convert.ToDouble(str);但它沒有工作,請幫助。 – vix 2009-11-08 05:44:20

+0

我使用double.Parse()作爲'float'SQL數據類型,但Convert.ToDouble()只是調用double.Parse()所以它應該已經工作。 Convert.ToDouble()調用本身是否引發異常,或者SQL是否拒絕了結果值?另外,你正在使用什麼數據訪問層(例如,你使用什麼樣的調用來提交數據?) – 2009-11-08 06:03:43

+0

Ray,當我試圖批量複製Convert.ToDouble(str)之後已有單元格的數據表的值時得到以下錯誤。 System.InvalidOperationException:來自數據源的String類型的給定值無法轉換爲指定目標列的float類型。 ---> System.FormatException:無法將參數值從字符串轉換爲Double。 ---> System.FormatException:輸入字符串的格式不正確。 at System.Number.StringToNumber(String str,NumberStyles options,NumberBuffer&number,NumberFormatInfo info,Boolean parseDecimal) – vix 2009-11-08 06:19:58

1

SQL Server將識別"true" and "false" for the bit datatype。此外,零爲零,非零商店爲「1」。

您要發送"true"true

如果您遇到與雙打相同的錯誤(根據對其他答案的評論),那麼我懷疑您正在發送報價。

0
int a = Convert.ToInt32(row.ItemArray[5]); 
bool b; 
b = Convert.ToBoolean(a); 
switch (a) 
{ 
    case 1: 
     b = true; 
     break; 
    case 0: 
     b = false; 
     break; 
} 
相關問題