11.2VisualStudio2005内的SQLServer方案
来源:优易学  2010-1-12 12:07:52   【优易学:中国教育考试门户网】   资料下载   IT书店

 

常常有朋友询问如何将用户输入的密码通过哈希(Hash)算法计算过后再放入数据库中,在以往笔者只能建议在应用程序端编写,现在相同的语法可以写成存储过程保存在 SQL Server 内,如程序代码列表11-2 所示。而一般的用户只需要简单地调用存储过程,就可以将密码通过 .NET Framework 提供的 SHA1 哈希算法编码后,再存入到数据表。

SqlPipe将执行结果或信息送回前端应用程序,程序范例可以参照程序代码列表 11-1 最后两行。如果前端是通过 ADO 或 ADO.NET 对象访问 SQL Server,而我们编写的对象返回文字信息,则会被前端视为 Connection 对象的 InfoMessage 事件,范例如下。你也可以返回单一条记录或是整个数据集合。

Dim pipe As SqlPipe = SqlContext.Pipe

‘传送信息

 

pipe.Send(“完成事务”)

SqlDataReader通过 SQL Server 提供的只能向前移动(forward-only)、只读(read-only)游标(Cursor)来访问数据。

Dim sdr As SqlDataReader = cmd.ExecuteReader()

While sdr.Read()

    Debug.WriteLine(sdr("EmployeeID") & "-" & sdr(1))

End While

sdr.Close()

上述范例程序中通过 Read 函数逐条读出数据,直到数据记录读取完毕,Read 函数会返回 false,我们据此退出循环。

System.Transactions.Transaction.NET Framework2.0新增了 System.Transactions 命名空间,在其内可提供新的事务管理架构与功能。若只就此处的 SQL Server 内部对象而言,你不太需要管理,因为当通过 SqlConnection 取得对象执行环境的连接时,若该连接已经有事务,则会自动加入,你可以通过 Transaction 的静态属性 Current 取得当前的事务状况,以此完成或恢复事务。范例程序如下:

Catch ex As Exception

    Transaction.Current.Rollback

约略看完 ADO.NET 2.0 与创建 SQL Server 2005 对象相关的类后,我们接着来看一下,如何通过 Visual Studio 2005 建构对象。

11.2.2  通过Visual Studio 2005创建供SQL Server 2005用的Assembly

首先在 Visual Studio 2005 新建一个新的项目,类型为“SQL Server Project”,画面如图11-2所示:

在图11-2中,左上方的“项目类型(Project Type)”中选择某个语言后,点选其下的“Database”节点,然后在右上方的“模板(Template)”选择“SQL Server Project”,在下方的“名称(Name)”字段定义项目名称后,可以通过“浏览(Browse)”按钮选择项目存放的文件路径。

图11-2  打开创建SQL Server 2005对象的项目

Visual Studio 2005 接着会让你选择要加入对哪一个数据库的引用,画面如图11-3 所示:

由于需要 Visual Studio 2005 集成开发环境帮我们部署已开发好的数据库对象到 SQL Server 2005 实例的数据库内,所以相关的连接设置必须正确。若在图11-3 设置错误,可以在进入项目后,在“解决方案资源管理器”窗口内以鼠标右键点选项目名称,通过快捷选项“属性(Properties)”,或是鼠标双击项目下的“My Project”节点,打开如图11-4 的画面,在“数据库(Database)”页签重新设置连结:

图11-3  设置对某个 SQL Server 2005 实例内数据库的引用

图11-4  设置项目部署(Deploy)对象时,所连结的数据库以及各对象的执行权限

另外,Visual Basic.NET 默认的根命名空间(Root Namespace)和程序集名称(Assembly Name)将会与项目名称相同,在部署程序集到 SQL Server 2005 时将会用到这两个名称。若你想更改根命名空间或程序集名称可以进入“应用程序(Application)”页签修改,如图11-5画面所示:

图11-5  设置项目的程序集名称或根命名空间

接着在Visual Studio 2005的项目内选取工具选单上的“项目”-“添加新项目”,打开如图11-6的对话框,在对话框内选择“Stored Procedure”项目,或于“解决方案资源管理器”内使用快捷选项,选择“新建项目(New Item)”亦可。

在图11-6 中填入适当名称后,点选“添加(Add)”按钮,以添加定义“Stored Procedure”的模板。

在此,我们创建一个存储过程,内容如上文程序代码列表 11-2 的定义。整个项目的画面至此如图11-7 所示:

图11-6  通过添加新项目对话框选择创建存储过程的模板

图11-7  程序代码中所设置的StoredProcedure名称,在部署
后将会在SQL Server Management内找到

在各对象前可以加上 System.Data.Sql 命名空间下所提供的一组 Attribute 来告知该函数的用途,同时可以通过该 Attribute 的 name 属性(Property)来告知该函数或类型创建到 SQL Server 内对象的命名。通常若不指定名称,就沿用原 .NET 函数的名称当作数据库对象的名称。

Attribute 设置的范例如下:

<System.Data.Sql.SqlProcedure(name:="WriteHashedPassword")>

编译无误后,接着通过 Visual Studio 2005 提供的“部署(Deploy)”功能,将你所写好的程序部署到SQL Server 2005,快捷选项如图11-8所示:

上一页  [1] [2] [3] 下一页

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
热门课程培训