2011年3月4日 星期五

當SQL 200x 新的 uniqueidentifier資料型態,遇見 SqlDataSource

當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 資料類型。

============================================================================================

本範例可以作為「上集」的第六、第七章補充

ASP.NET 4.0 專題實務 ( I )--入門實戰篇

ASP.NET 4.0 專題實務(I)_VB ASP.NET 4.0 專題實務(I)_C#

(松崗出版,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#)

ASP.NET 4.0 專題實務(I)_VB ASP.NET 4.0 專題實務(I)_C#

(松崗出版,VB版 / C#版

範例比上一本書增加 166%,內容(頁數)增加 135%

上 / 下兩集 (2010年)已經出版囉 ~ 歡迎到此參加團購(上下兩集合購,免運費)


ASP.NET專題實務( II ) 第二版:範例應用 與 4.0新功能

.................................................................................................... 寄信給我 mis2000lab (at) 雅虎.com.台灣 ........

沒有留言: