任何人都可以幫助將C#中的字符串值轉換爲Sql中的等價物。我試圖將數據表的值批量複製到Sql表中。我在數據表中的所有值都是字符串格式。當我嘗試批量複製到SQL表時,我得到了位數據類型列的錯誤。任何人都可以在將批量複製到SQL表之前發佈C#代碼以將字符串轉換爲位類型。在插入數據庫之前將字符串轉換爲位
感謝, Vix指數
任何人都可以幫助將C#中的字符串值轉換爲Sql中的等價物。我試圖將數據表的值批量複製到Sql表中。我在數據表中的所有值都是字符串格式。當我嘗試批量複製到SQL表時,我得到了位數據類型列的錯誤。任何人都可以在將批量複製到SQL表之前發佈C#代碼以將字符串轉換爲位類型。在插入數據庫之前將字符串轉換爲位
感謝, Vix指數
SQL Server中的bit
數據類型達在C#中bool
數據類型相匹配。因此,只需將您的字符串轉換爲bool
s(使用bool.Parse()
或您最喜歡的替代方法),即可設置。
如果你的字符串是「真」與「假」(忽略大小寫和空格),這將工作:
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值。
謝謝雷。如何將字符串轉換爲浮動相同scenario.I嘗試Convert.ToDouble(str);但它沒有工作,請幫助。 – vix 2009-11-08 05:44:20
我使用double.Parse()作爲'float'SQL數據類型,但Convert.ToDouble()只是調用double.Parse()所以它應該已經工作。 Convert.ToDouble()調用本身是否引發異常,或者SQL是否拒絕了結果值?另外,你正在使用什麼數據訪問層(例如,你使用什麼樣的調用來提交數據?) – 2009-11-08 06:03:43
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
SQL Server將識別"true" and "false" for the bit datatype。此外,零爲零,非零商店爲「1」。
您要發送"true"
或true
?
如果您遇到與雙打相同的錯誤(根據對其他答案的評論),那麼我懷疑您正在發送報價。
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;
}
謝謝,丹尼爾。如何將字符串轉換爲浮動相同scenario.I嘗試使用Convert.ToDouble(str);但它沒有工作。請幫助 – vix 2009-11-08 05:59:59