本帖最后由 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语句。
[SQL] 纯文本查看 复制代码 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ULogin]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[ULogin] --上面检测该函数名是否存在,如果该函数名存在就删除 ULogin这个是我们要新建的函数名
GO
---如果你确定你的数据库里面没有这个函数名 上面也可以不写
create function ULogin(@tid nvarchar(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
函数写好了。现在我们到应用程序里面用它
[C#] 纯文本查看 复制代码 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(); }
到此就完成了。
|