通过sqlserver的标量值函数来认证用户登陆
本帖最后由 cenbz 于 2014-8-2 14:08 编辑如果你想做各一个用户登陆的模块,只有用户的帐号和密码都正确时,才能进去主窗口,那代码如何实现呢,其实网上有很多例子,方法也有很多。今来一个通过创建sql server的可编程性--函数--标量值函数(以下步骤是在sql server 2005,sql server manage studio express执行),在需要认证的代码模块中来调用这个函数就可以了。下面来个例子:
数据库test 建有一个表为users,表里面有ID nvarchar(20) 和Password nvarchar(20) 字段 。在test数据库里面的【可编程性--函数--标量值函数】,右击标量值函数就可建立一个函数,或者直接新建查寻,在里面写SQl语句。
if exists (select * from dbo.sysobjects where id = object_id(N'.') and xtype in (N'FN', N'IF', N'TF'))
drop function . --上面检测该函数名是否存在,如果该函数名存在就删除ULogin这个是我们要新建的函数名
GO
---如果你确定你的数据库里面没有这个函数名 上面也可以不写
create function ULogin(@tidnvarchar(20),@tpas nvarchar(20))--括号里面是参数名 类型
returns bit--函数返回值 我们返回bit型 到时候可以强制转化为boo型做判断
as
begin
declare @bid nvarchar(20)
declare @bps nvarchar(20)
select @bid=t.ID,@bps=t.password from users t where t.ID=@tid
if @bid=NULL--用户名不存在
return 0
if @bps=@tpas--用户名存在,判断密码是否相等
return 1--认证通过
return 0
end
GO
函数写好了。现在我们到应用程序里面用它
SqlConnection con = new SqlConnection(@"你懂的");
SqlCommand com=new SqlCommand("select dbo.TLogin('帐户名','密码')",con);
try
{
con.Open();
if ((bool)com.ExecuteScalar())
{ /*登陆成功*/ }
else { /*登陆失败*/ }
con.Close();
}
catch (Exception)
{ con.Close(); }
到此就完成了。
新人求罩 {:3_44:} ibcadmin 发表于 2014-8-2 22:23
这方法仅仅玩玩而已,应该没什么实际意义。 cenbz 发表于 2014-8-2 14:56
这方法仅仅玩玩而已,应该没什么实际意义。
挺好的 有没有当个版主的兴趣?
页:
[1]