當SQL 200x 新的 uniqueidentifier資料型態,遇見 SqlDataSource
http://www.dotblogs.com.tw/mis2000lab/archive/2010/11/03/uniqueidentifier_sqldatasource.aspx新的 SQL Server 200x版,多了一些新的資料型態。
例如:uniqueidentifier資料型態
請參閱微軟MSDN網站,http://technet.microsoft.com/zh-tw/library/ms187942.aspx
這是 16 位元組的 GUID。
uniqueidentifier 資料類型的資料行或本機變數可以利用下列方法,初始化為一個值:
* 使用 NEWID 函數。
* 從 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 格式的字串常數轉換,其中每一個 x 是範圍 0-9 或 a-f 的十六進位數字。例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 是有效的 uniqueidentifier 值。
比較運算子可以搭配使用 uniqueidentifier 值。不過排序並不是比較兩值的位元模式加以實作的。唯一可以對 uniqueidentifier 值執行的作業,是比較 (=、<>、<、>、<=、>=) 以及檢查 NULL (IS NULL 和 IS NOT NULL)。其他算術運算子一律不能使用。除了 IDENTITY 之外,所有的資料行條件約束和屬性,都可以用於 uniqueidentifier 資料類型。
============================================================================================
本範例可以作為「上集」的第六、第七章補充
(松崗出版,VB版 / C#版)
當您搭配 VS 2008/2010的 SqlDataSource開發時,會遇見錯誤 --
「不允許從資料類型 sql_variant 隱含轉換到 uniqueidentifier。請使用 CONVERT 函數來執行查詢。 」
您必須自己動手,修改 SqlDataSource自動產生的SQL指令
InsertCommand="INSERT INTO [News_test] ([test_uid], [test_time]) VALUES (NewID() , @test_time)"
SelectCommand="SELECT test_id, cast([test_uid] as varchar(36)) as test_uid, [test_time] FROM [News_test]"
UpdateCommand="UPDATE [News_test] SET [test_uid] = cast(@test_uid as varchar(36)), [test_time] = @test_time WHERE [test_id] = @test_id"
感謝這位網友的分享。
參考資料:http://blog.csdn.net/athossmth/archive/2006/05/13/727355.aspx
「分享」,讓知識愈加地發光!
...... 寄信給我 mis2000lab (at) 雅虎.com.台灣 ....................................................................................................
ASP.NET 4.0 專題實務 ( I )--入門實戰篇(VB / C#)
(松崗出版,VB版 / C#版)
範例比上一本書增加 166%,內容(頁數)增加 135%
上 / 下兩集 (2010年)已經出版囉 ~ 歡迎到此參加團購(上下兩集合購,免運費)
ASP.NET專題實務( II ) 第二版:範例應用 與 4.0新功能
.................................................................................................... 寄信給我 mis2000lab (at) 雅虎.com.台灣 ........
沒有留言:
張貼留言