马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

通过sqlserver的标量值函数来认证用户登陆

  [复制链接]
查看8031 | 回复4 | 2014-8-2 14:07:51 | 显示全部楼层 |阅读模式
本帖最后由 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();     }



到此就完成了。
kklikes | 2014-8-2 16:22:48 | 显示全部楼层
新人求罩
ibcadmin | 2014-8-2 22:23:27 | 显示全部楼层
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
cenbz | 2014-8-2 22:56:30 | 显示全部楼层
这方法仅仅玩玩而已,应该没什么实际意义。
ibcadmin | 2014-8-3 09:31:35 | 显示全部楼层
cenbz 发表于 2014-8-2 14:56
这方法仅仅玩玩而已,应该没什么实际意义。

挺好的   有没有当个版主的兴趣?
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则