http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2186|回复: 4

[学生提问] 网站的登录页面的出现了一个错误错误

[复制链接]
发表于 2016-4-4 23:43:24 | 显示全部楼层 |阅读模式
在做一个网站的登录页面
当读取数据库的用户名和密码正确时想要跳转到主页
出现了一个错误错误 2 类型“System.Data.SqlClient.SqlDataReader”未定义构造函数
匹配用户名和密码类的代码
  public static bool MateUserName(string name)
    {
        bool b1 = false;
        SqlConnection connect = ConnectSql.ConnectMeth();//SqlConnection表示打开数据库的一个连接,该类不能被继承
        //写数据库语句
        //SqlCommand表示数据库语句的存储过程,创建该类
        SqlCommand cmd = new SqlCommand(string.Format("select * from Login where Username='{0}'",name),connect);
        connect.Open();
        SqlDataReader reader = new SqlDataReader();//提供从一种数据库读取行只进流的一种方式
        while (reader.Read())//不断的前进到下一跳记录
        {
            if (reader.GetSqlString(0)==name)//.GetSqlString获取指定行的值
            {
                b1 = true;
                break;
            }
           
        }
        connect.Close();
       return b1;
   
    }
    //MateUserPsd匹配密码
    public static bool MateUserPsd(string psd)
    {
        bool b1 = false;
        SqlConnection connect = ConnectSql.ConnectMeth();//连接数据库
        SqlCommand cmd = new SqlCommand(string.Format("select * from Login where Userpsd={0}",psd),connect);
        connect.Open();
        SqlDataReader reader=new SqlDataReader();
        
        while(reader.Read())
        {
            if (reader.GetSqlString(1)==psd)
            {
                b1 = true;
                break;
            }
        }
        connect.Close();
        return b1;
    }
请问怎么解决这个问题。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2016-4-5 10:58:09 | 显示全部楼层
我也是新手 只贴上我的程序 正常使用~
[C#] 纯文本查看 复制代码
        while (dr.Read())
        {
            if ((UserName.Text.Trim() == dr["EmployeeNO"].ToString()) && (PassWord.Text == dr["Password"].ToString()) )
            {
                dr.Close();//断开数据库连接
                Connection.Close();
                Response.Redirect("page1.aspx");                
                return;
            }
        }


 楼主| 发表于 2016-4-5 17:21:28 | 显示全部楼层
解决了。
若要创建 SqlDataReader,必须调用 SqlCommand 对象的 ExecuteReader 方法,而不要直接使用构造函数.
SqlDataReader reader=cmd.ExecuteReader();
 楼主| 发表于 2016-4-5 17:23:06 | 显示全部楼层
a2633063 发表于 2016-4-5 10:58
我也是新手 只贴上我的程序 正常使用~
[mw_shl_code=csharp,true]        while (dr.Read())
        {

直接查吗?有写查询语句吗?
发表于 2016-4-8 15:48:50 | 显示全部楼层
My-self 发表于 2016-4-5 17:23
直接查吗?有写查询语句吗?

当然  前面的查询什么 都没贴   和你的差不多
现在改了下 补全:
[C#] 纯文本查看 复制代码
        Connection = new SqlConnection(strCon);
        try
        {
            Connection.Open();
        }
        catch
        {
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('錯誤!连接数据库失败,請檢查網絡是否正常');</script>");
            return;
        }
        command = new SqlCommand("Select * From Users where EmployeeNO=‘"+UserName.Text.Trim()+“’”, Connection);
        dr = command.ExecuteReader();

        while (dr.Read())
        {
            if ((UserName.Text.Trim() == dr["EmployeeNO"].ToString()) && (PassWord.Text == dr["Password"].ToString()) && (bool)dr["ActiveRecord"] == true)
            {
                dr.Close();//断开数据库连接
                Connection.Close();
                Response.Redirect("Report.aspx");                
                return;
            }
        }

        dr.Close();//断开数据库连接
        Connection.Close();


之前已经定义了
    SqlConnection Connection;
    SqlDataReader dr ;
    string strCon = ConfigurationManager.ConnectionStrings["Weekly_ReportConnectionString203"].ToString(); //SQL连接字段
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-7 13:19

© 2014-2021

快速回复 返回顶部 返回列表