原因待查
先用三元運算式處理
dr["f_his"].ToString().ToUpper() == "TRUE" ? "1" : "0"
https://msdn.microsoft.com/zh-tw/library/ms177603%28v=sql.120%29.aspx
SQL Server Database Engine 可將 bit 資料行的儲存體最佳化。 如果資料表中的 bit 資料行小於或等於 8 個,這些資料行會儲存為 1 個位元組。 如果有 9 到 16 個 bit 資料行,則儲存為 2 個位元組,依此類推。
字串值 TRUE 和 FALSE 可以轉換成 bit 值:TRUE 會轉換成 1,FALSE 則轉換成 0。
轉換成位元會將任何非零的值升級成 1。
http://stackoverflow.com/questions/2767352/c-sharp-convert-bit-to-boolean
SqlDataSource
from ASP.NET 2.0 returns 0
and 1
for BIT
fields.SqlDataSource
from ASP.NET 4.0 returns appropriate string - Boolean.TrueString
("True"
) or Boolean.FalseString
("False"
).
沒有留言:
張貼留言