惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
Blog — PlanetScale
Blog — PlanetScale
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
U
Unit 42
I
InfoQ
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
B
Blog RSS Feed
Vercel News
Vercel News
F
Fortinet All Blogs
Know Your Adversary
Know Your Adversary
T
Troy Hunt's Blog
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
Jina AI
Jina AI
小众软件
小众软件
T
Threatpost
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
Scott Helme
Scott Helme
B
Blog
腾讯CDC
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
S
Schneier on Security
N
News and Events Feed by Topic
Microsoft Security Blog
Microsoft Security Blog
K
Kaspersky official blog
G
Google Developers Blog
T
Tor Project blog
PCI Perspectives
PCI Perspectives
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
Latest news
Latest news
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
罗磊的独立博客

博客园 - Tiu

2010走了,又是一年,留个脚印 Commerce Server 2007 随笔一 2009眨眼间过去了,留个纪念 asp.net ajax随笔二 asp.net中慎用static全局变量 asp.net ajax随笔一 收集的关于依赖注入及Unity application block入门的一些资料 2008最后一篇:总结与展望 文件操作类简介 防止页面在提交的过程中多次点击按钮 C#网络编程随笔一 装AJAX.NET 1.0的环境,我遇到个问题,进来解答下 关于邮件群发 XML学习一 asp.net窗中的两个Form问题 URL重写入门 动态从数据库中选择Top 个数 关于在数据层返回SqlDataReader 编写类和子程序的几个原则
第一次使用SQLCLR
Tiu · 2007-05-24 · via 博客园 - Tiu

     今天遇到个在数据库中进行数据转换的问题,我在数据库中用十六进制形式存储了一些数据,但是我想用存储过程选出来时数据要用十进制形式显示,我在数据库中没有找到相应的函数或者方法进行这种操作。例如:十进制:4097对应的十六进制为1001,我在数据库中存的是1001,以varchar的形式存储的。当然如果在C#程序中这种转换就非常简单了:Convert.ToInt32(rfid, 16).ToString(),这样十六进制的rfid就转换成十进制了。
     后来想到了SQL 2005集成了CLR功能,可以用编写普通程序的方式编写存储过程或函数等。于是就在vs2005中新建一个sqlserver project的项目,关联到相应的数据库,截图太麻烦了,相信大家也都明白,我这就不截图了,建完项目后新建一个“用户定义的函数”项,然后添加下列代码:

    [Microsoft.SqlServer.Server.SqlFunction]
    
public static SqlString GetIntRFID(SqlString rfid)
    
{
        
// 在此处放置代码
        string str;
        
if (rfid.Value.Equals("NNNN"))
            str 
= String.Empty;
        
else
            str 
= Convert.ToInt32(rfid.Value, 16).ToString();
        
return str;
    }

然后编译生成,在点击部署,这样在sql2005数据库中就能找到相应的函数,然后调用此函数,参数为数据库中16进制的数,返回的为10进制的数值,这样就达到了自己的目的,并且个人觉得相对与自己写一个把16进制转换成10进制的函数要简单的多。
   sql2005默认好像是没有启用clr功能的,可以先查询一下:exec sp_configure 'clr enabled'  如果config_value项为0,则表示没有启用,要执行 exec sp_configure 'clr enabled' ,1使它变为1,最后运行 reconfigure with override完成操作。

      微软的东西更新太快,看来只有先了解下,等需要的时候在深入.