vateFunctionCreatePasswordHash(ByValpwdAsString,ByValsaltAsString)AsStringDimsaltAndPwdAsString=String.Concat(pwd,salt)
DimhashedPwdAsString=(saltAndPwd,"SHA1")ReturnhashedPwd
EndFunction
FormsAuthentication.HashPass
wordForStoringInConfigFile
1994-2010ChinaA
cademicJournalElectronicPublishingHouse.Allrightsreserved.
http://www.cnki.net
第2期
姚争为:基于ASP.NET的科研
管理系统的
设计与实现
151
2.2在ASP.
NET中使用存储过程
在ASP.NET中,可以使用ADO.NET完成存储过程∧DataSet在ADO.NET中用作数据容器,并在与数据库断开连接时使用∧DataSet包含一个或多个DataTable,每个DataTable都包含行集合∧对于那些熟悉传统ADO环境的用户来说,DataTable可被看作是断开连接的Recordset∧
DataTable,或将DataTable中的更改写回到数据库,或者二者兼而有之∧ataAdapter要求Command对象D
DataAdapter在连接到数据库时工作∧单个DataAdapter的作用是使用数据库中的数据填充某个
执行各种数据库操作∧Command对象存放SQL语句或指定数据访问实现方法的存储过程名称∧每个DataAdapter有四个属性,指定用于四种数据访问类型之一的命令对象∧·SelectCommand:此Command对象用于从数据库中选择数据;·UpdateCommand:此Command对象用于更新数据库中的现有记录;·InsertCommand:此Command对象用于向数据库中插入新记录;·DeleteCommand:此Command对象用于删除数据库中的现有记录∧但是使用DataAdapterConfigurationWizard在数据库中创建存储过程有一个不足之处:当用户向数据库中添加新记录时,系统不能自动生成主键(主键通常是按顺序分配的长整数)∧在科研管理系统中,如Thesis(论文)表,就要求使用Identity列自动创建新发表论文的I∧D为新记录设置主键有两种基本技术∧应用
程序可调用生成下一个可用I的存储过程,然后将此I直接放到DataSet的新行中∧或DD
CREATEPROCEDUREdbo.MSDNInsertThesis(
者,用于插入记录的存储过程可以为记录派生新I,然后将其作为返D回值传递回应用程序∧第一种技术需要一点额外的逻辑来获取新I并将其放到新记D录的相应位置∧但第二种技术要求在存储过程中使用一种新型参数,ReturnValue参数∧因为存储过程为主键生成新值后,通常使用存储
过程中的RETURN语句返回该值∧ReturnValue参数与其他类型的参数有一个重要的区别∧通常,在ADO.NET中为Command对象配置的参数其顺序并不重要∧参数名称只用来与存储过程中相应的参数相匹配∧但是,对于图2用于访问存储过程的主要ADO.NET类以及它们之间的关系ReturnValue参数,它必须是
列表中的第一个参数∧
也就是说,为Command对象配置ReturnValue参数时,必须首先在代码中配置该参数,这样它才能获取集合中的第一个数字索引∧如果先配置任何其他参数,ReturnValue参数将不能正常工作∧更改存储过程的具体代码如下:
@ThesisNamenvarchar(40),@AuthorNamenvarchar(10),@Journalnvarchar(40),@Publishdatedatetime,@Levelsmallint,@WordCountint,@IfIndexbit,
1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.
http://www.cnki.net
152
杭州师