当SQL200x 新的 uniqueidentifier数据型态,遇见 SqlDataSource
http://www.dotblogs.com.tw/mis2000lab/archive/2010/11/03/uniqueidentifier_sqldatasource.aspx
新的 SQLServer 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案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)
当您搭配 VS2008/2010的 SqlDataSource开发时,会遇见错误 --
「不允许从数据类型 sql_variant 隐含转换到 uniqueidentifier。请使用 CONVERT 函数来执行查询。 」
您必须自己动手,修改 SqlDataSource自动产生的SQL指令
InsertCommand="INSERTINTO [News_test] ([test_uid], [test_time])VALUES (NewID(), @test_time)"
SelectCommand="SELECTtest_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案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)