`
cjc
  • 浏览: 680387 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在SQL Server2005中使用.Net代码

阅读更多
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>


SQL Server2005的新功能中最吸引人的一点就是可以直接使用.NET的代码.
SQL Server2005中能执行4种不同类型的.NET过程:
1,标量值用户定义函数.
2,表值用户定义函数.
3,用户定义过程.
4,用户定义函数.
SQLServer2005添加了对.NET的支持有什么好处啦:
1,完成一些十分复杂的逻辑.比如要实现复杂的数学运算.
2,调用.NET强大的类库.比如加密函数等.
3,使用在SQL中很难调用的系统资源,比如事件日志.

既然 这样那我们接下来就做一个简单的调用.NET代码的例子:
1.在VS中编写好我们要实现的函数功能.记住这个函数是static函数.而且要添加属性SqlFunction.
比如我们写一个简单的开平方函数:
新建"类库"项目,填入如下代码并编译成dll.
using System;
using Microsoft.SqlServer.Server;
namespace SQLFunction
{
public class UserFunction
{
[SqlFunction(DataAccess=DataAccessKind.None)]
public static double Sqrt(int a)
{
return Math.Sqrt(a);
}
}
}
2.打开Management Studio,点开某个需要添加程序集的数据库,然后点击"可编程性"->"程序集",右键新建程序集.将上面代码生成的dll路径添加到里面便完成.这个时候"程序集"下面就出现了我们刚添加的程序的名字SQLFunction.
另外一种方法是使用SQL语句:
create assembly Conversions
from 'C:\SQLFunction.dll'
这样就把程序集命名为了Conversions.
3.添加自定义函数
create function dotNetSqrt(@num int)
returns float
as external name Conversions.[SQLFunction.UserFunction].Sqrt
这儿需要说明的是SQL中的输入输出参数必须和.NET相同,不然无法完成.
name 后面跟的格式是:程序集名.[名字空间.类名].函数名
4.开启CLR集成功能
默认情况下,Microsoft SQL Server 中禁用公共语言运行库 (CLR) 集成功能,必须启用才能使用通过 CLR 集成实现的对象。要启用 CLR 集成,请如下所示使用 sp_configure 存储过程的 clr enabled 选项:
sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO
到此我们的工作已经做完了.那么我们就来测试一下,输入
select dbo.dotNetSqrt(2)
这个是求2的平方根.如果出现了结果1.1412...那么就说明我们大功告成!
在使用.Net代码的时候我还有一个问题没有搞懂,那就是运行这个程序集的用户到底是哪个?因为我在程序集的一个函数里面执行了IO操作,把输入或输出记录写到硬盘上,但是我在数据库中执行调用这个程序集的时候总是报权限异常.我把文件夹的Network Server用户,Everyone用户等等都添加了完全控制的权限了还是要抛出异常,这个就不怎么明白了.希望高手指点.

分享到:
评论

相关推荐

    新手必看留言本采用sql server2005+asp.net(C#)编写

    【标题】:“新手必看留言本采用sql server2005+asp.net(C#)编写” ...这个项目是一个很好的起点,让初学者能够在实践中学习和巩固SQL Server 2005与ASP.NET (C#)的基础知识,为进一步的Web开发打下坚实的基础。

    精通ASP.NET 2.0+SQL Server 2005 项目开发

    在ASP.NET 2.0与SQL Server 2005的结合中,ADO.NET是关键的数据访问层。它提供了DataSet、DataTable、DataRow等对象,用于在内存中管理和操作数据,并通过Connection、Command、DataAdapter组件与数据库进行交互。...

    通讯录+ASP.NET+SQL Server

    在本项目中,“通讯录+ASP.NET+SQL Server”是一个基于Web的应用程序,它整合了ASP.NET技术、SQL Server数据库管理系统以及通讯录管理的功能。这个课程设计旨在教授开发者如何构建一个实用的在线通讯录系统,让学生...

    Flex+LINQ+SQL SERVER 2005+Asp.net实现增删改查功能源码(附有数据库)

    在Asp.net中,结合C#或VB.NET,我们可以使用LINQ to SQL或Entity Framework来操作SQL Server数据库,实现数据的增删改查操作。 **SQL Server 2005**: SQL Server 2005是Microsoft推出的一款关系型数据库管理系统,...

    精通ASP.NET2.0+SQL Server 2005项目开发 源码.rar

    2. 数据展示与分页:通过GridView、Repeater等控件,演示如何从SQL Server 2005中检索并展示数据,同时实现数据的分页和排序。 3. 多层架构设计:模拟真实项目,展示业务逻辑层(Business Logic Layer, BLL)、数据...

    vb.netPSQL-Server.zip_.net_SQL Server vb_sql vb.net_vb.net SQL_

    5. **编程实践**:如何在VB.NET代码中安全地管理数据库连接,避免资源泄露,如使用using语句块确保数据库连接的正确关闭。 6. **异常处理**:在VB.NET中处理可能的数据库操作错误,例如网络问题、权限问题或语法...

    农村扶贫管理系统 asp.net +Sql server 2005

    农村扶贫管理系统是一个基于ASP.NET技术和SQL Server 2005数据库的信息化解决方案,旨在提高农村扶贫工作中的效率和准确性。此系统的设计与实现涵盖了多个IT领域的关键知识点,包括但不限于以下几点: 1. **ASP.NET...

    一个基于Asp.Net和 SQL Server 2005 的一个简单的WIKI引擎

    是一个基于Asp.Net和 SQL Server 2005 的一个简单的WIKI引擎,其旨在提供一个精简的WIKI引擎且易于配置、修改,以及一些基本的认证功能。 功能简介: 轻量级 代码非常少 易于提升性 简单的DB结构 ? 当不...

    sqlserver2005的缓存机制+.net SQLDATASOURCE的实现

    SQL Server 2005中的缓存主要分为两大部分:缓冲池(Buffer Pool)和计划缓存(Plan Cache)。 1. 缓冲池:这是SQL Server中最主要的缓存,用于存储数据页和索引页。当数据库从磁盘读取数据时,会将这些页加载到...

    ASP.NET+SQL Server 系统开发实例

    ASP.NET和SQL Server是开发企业级Web应用的常用技术栈,它们在构建高效、安全且可扩展的系统中发挥着关键作用。在这个"ASP.NET+SQL Server 系统开发实例"中,我们可以深入理解这两项技术如何协同工作,构建出实际的...

    最新ASP.NET+SQL Server项目

    在ASP.NET中,开发人员可以使用C#、VB.NET等语言编写代码,创建高度交互和响应式的用户界面。 项目描述中提到的“最新”可能意味着利用了ASP.NET的最新版本,如ASP.NET Core,这是一个跨平台、高性能的开源框架,...

    基于ASP.NET与SQL Server2005的在线考试系统

    ### 基于ASP.NET与SQL Server 2005的在线考试系统 #### 技术背景与系统架构 本文介绍了一个在线考试系统的构建过程,该系统采用了ASP.NET技术和C#编程语言,并选择了微软的SQL Server 2005作为数据库管理系统。此...

    .net+sql server图书管理系统,有数据库

    在图书管理系统中,SQL Server用于存储图书信息(如书名、作者、出版社、ISBN等)、读者信息(如姓名、借书卡号、联系方式等)以及借阅记录等数据。使用T-SQL(Transact-SQL)进行数据操作,可以实现数据的增删改查...

    ASP.NET自行车管理网站VS2005+SQLSERVER2005

    在VS2005中,开发者可以利用其强大的设计工具和集成开发环境(IDE)来快速构建和调试ASP.NET应用。 C#是ASP.NET的主要编程语言,是一种面向对象的、类型安全的、现代的编程语言。在这个自行车管理网站中,C#代码...

    vb.net如何简单的插入数据到sql server

    在VB.NET中向SQL Server数据库插入数据是一项基本但至关重要的任务。这通常涉及到使用ADO.NET库,它提供了与各种数据库(包括SQL Server)交互的接口。以下是一个详细步骤的指导,教你如何在VB.NET中实现这个功能。 ...

    ASP.NET如何存取SQL Server数据库图片

    在ASP.NET页面上显示图片,可以通过将从数据库中检索出的字节数组转化为Base64编码的字符串,然后在HTML元素中使用`src`属性加载该字符串,或者直接将字节数组写入响应流,使浏览器能够识别并显示图片。 综上所述,...

    .net 3.5 +sql server 2005 小型论坛 示例

    标题中的".NET 3.5 + SQL Server 2005 小型论坛示例"指的是一款基于.NET Framework 3.5版本和SQL Server 2005数据库的微型论坛应用程序。这个示例旨在帮助开发者理解如何在实际项目中整合这两种技术,创建一个基本的...

    c# asp.net实现sql server数据库备份

    首先,需要在项目中引用`Microsoft.SqlServer.Smo`和`Microsoft.SqlServer.ConnectionInfo`库。 以下是一个简单的C#代码示例,展示如何使用SMO创建一个完整数据库备份: ```csharp using Microsoft.SqlServer....

    ASP.NET2.0+sql server 网络应用开发详解

    《ASP.NET 2.0 + SQL Server 网络应用开发详解》这本书是针对使用ASP.NET 2.0和SQL Server进行Web应用开发的详细指南。ASP.NET是Microsoft .NET框架的一部分,它提供了一种高效、面向对象的方式来构建动态网站、web...

    ASP.NET 2.0+SQL Server 2005数据库开发与实例 源代码

    ASP.NET 2.0 和 SQL Server 2005 是两个关键的技术栈,它们在Web应用程序开发中扮演着重要角色。本资源集包含了基于这两项技术的开发实例,旨在帮助开发者深入理解如何将它们结合使用。 ASP.NET 2.0 是微软.NET ...

Global site tag (gtag.js) - Google Analytics