有Windows窗体实现一个小小的能注册的登陆界面     要代码    高手给代码

解决方案 »

  1.   

    页面后台:    //注册方法:
        protected void btnRegister_Click(object sender, ImageClickEventArgs e)
        {
            User user = new User();
            user.LoginId = this.txtLoginId.Text;
            user.LoginPwd = this.txtLoginPwd.Text;
            user.Name = this.txtName.Text;
            
            user.QQ = this.txtQQ.Text;
            user.Mail = this.txtEmail.Text;        if (!UserManager.Register(user))//调用BLL方法添加用户信息,实现注册
            {
                this.ltMain.Text = "<script>alert('用户名已使用!请重新选择!')</script>";
            }
            else
            {
                this.ltMain.Text = "<script>alert('注册成功!欢迎您!');window.location='default.aspx'</script>";
            }    }   
       //登录方法
        protected void imgbtnLogin_Click(object sender, ImageClickEventArgs e)
        {
            User user;
            if (UserManager.Login(this.txtLoginId.Text, this.txtLoginPwd.Text, out user))//调用BLL方法,查询用户名和密码时候正确
            {
                this.pnlLogin.Visible = false;
                Session["CurrentUser"] = user;
                lblMessage.Text = user.Name.ToString() + "欢迎您!";
                this.pnLogin.Visible = true;
                Response.Redirect("~/UserDefault.aspx");
            }
            else
            {
                Response.Write("<script>alert('用户名或密码不正确,请重新填写')</script>");
            }
        }
    BLL层///<summary>
            /// 注册新用户
            /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public static bool Register(User user)
            {
                if (LoginIdExists(user.LoginId))
                {
                    return false;
                }
                else
                {
                    AddUser(user);
                    return true;
                }
            }
          /// <summary>
            /// 登录
            /// </summary>
            /// <param name="loginId">登录名</param>
            /// <param name="loginPwd">登录密码</param>
            /// <param name="validUser">输出用户</param>
            /// <returns></returns>
            public static bool Login(string loginId, string loginPwd, out User validUser)
            {
                User user = UserService.GetUserByLoginId(loginId);
                if (user == null)
                {
                    //用户名不存在 
                    validUser = null;
                    return false;
                }
                if (user.LoginPwd == loginPwd)
                {
                    validUser = user;
                    return true;
                }
                else
                {
                    //密码错误
                    validUser = null;
                    return false;
                }
            }
    DAL层: /// <summary>
            /// 添加新用户
            /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public static User AddUser(User user)
            {
                string sql =
                    "INSERT Users (LoginId, LoginPwd, Name, QQ, Mail)" +
                    "VALUES (@LoginId, @LoginPwd, @Name, @QQ, @Mail)";            sql += " ; SELECT @@IDENTITY";
                SqlParameter[] para = new SqlParameter[]
                    {
                        new SqlParameter("@LoginId", user.LoginId),
                        new SqlParameter("@LoginPwd", user.LoginPwd),
                        new SqlParameter("@Name", user.Name),
                        new SqlParameter("@QQ", user.QQ),
                        new SqlParameter("@Mail", user.Mail)
                    };            int newId = DBHelper.GetScalar(sql, para);
                return GetUserById(newId);
            }/// <summary>
            /// 通过登录名获得用户
            /// </summary>
            /// <param name="loginId"></param>
            /// <returns></returns>
            public static User GetUserByLoginId(string loginId)
            {
                string sql = "SELECT * FROM Users WHERE LoginId = @loginId";
                SqlDataReader reader = DBHelper.GetReader(sql, new SqlParameter("@LoginId", loginId));
                if (reader.Read())
                {
                    User user = new User();                user.Id = (int)reader["Id"];
                    user.LoginId = (string)reader["LoginId"];
                    user.LoginPwd = (string)reader["LoginPwd"];
                    user.Name = (string)reader["Name"];
                    user.QQ = (string)reader["QQ"];
                    user.Mail = (string)reader["Mail"];                reader.Close();                return user;
                }
                else
                {
                    reader.Close();
                    return null;
                }
            }
    其他的自己去写了
      

  2.   


                FrLogon frlogon = new FrLogon();
                DialogResult result = frlogon.ShowDialog();
                if (result == DialogResult.OK)
                {
                    Application.Run(new FormMain());
                }
      

  3.   

    不要asp.NET的    要用 C#编写的  窗体添加2个Button按钮   一个登陆  一个保存      多谢了啊   各位高手   
      

  4.   


      无语  asp.net 和 winform相差很多么?
       就是前台改下就OK了  唉...
      

  5.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void btnLogin_Click(object sender, EventArgs e)
            {
                SqlConnection yy = new SqlConnection(); //数据库连接
                yy.ConnectionString = "server=.;database=logins;uid=sa;pwd=sa"; //设定连接字符串
                yy.Open(); //打开连接
                SqlCommand nn = new SqlCommand(); //数据库命令,sql
                nn.Connection = yy;
                nn.CommandText = "select * from users where UserName = @name"; //sql语句,用于取得name指定的一行
                nn.Parameters.Add(new SqlParameter("@name", txtUser.Text)); //设定name条件为txtUser得值
                SqlDataReader rr = nn.ExecuteReader(); //执行sql语句 ExecuteReader
                if (rr.Read()) //读取纪录
                {
                    if (rr[2].ToString() == txtPwd.Text) //如果密码正确
                    {
                        Form2 ff = new Form2();
                        ff.Show();
                    }
                    else //密码错误
                    {
                        MessageBox.Show("密码错误,请重新输入!");
                        txtPwd.Text = "";
                    }
                }
                else //没有记录,用户名不存在
                {
                    MessageBox.Show("用户名不存在!请重新输入!");
                    txtUser.Text = "";
                    txtPwd.Text = "";
                }         }        private void btnRegister_Click(object sender, EventArgs e)
            {
                string connString = "server=.;database=logins;uid=sa;pwd=sa"; //设定连接字符串
                SqlConnection conn = new SqlConnection(connString); //数据库连接
                string sql = "insert into users values('" + txtUser.Text + "','" + txtPwd.Text + "')";//设定sql语句
                  //  "insert into users values(" + txtUser.Text + "," + txtPwd.Text + ")";
                SqlCommand cmd = new SqlCommand(sql, conn); //数据库命令,sql
                conn.Open();//打开连接                      if (cmd.ExecuteNonQuery() > 0) //有纪录,保存成功,执行sql语句 ExecuteNonQuery
                {
                        MessageBox.Show("保存成功!");
                        txtUser.Text = "";
                        txtPwd.Text = "";
                   
                }
                else //没有记录,保存失败
                {
                    MessageBox.Show("保存失败!");
                    txtUser.Text = "";
                    txtPwd.Text = "";
                } 
            }
        }
    }    在看不懂也没办法了...
      

  6.   

    y82907966:DAL层 里边我现在同你的这个做法一样的。         /// <summary>
            /// 添加新用户
             /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public static User AddUser(User user)
            {
                string sql =
                    "INSERT Users (LoginId, LoginPwd, Name, QQ, Mail)" +
                    "VALUES (@LoginId, @LoginPwd, @Name, @QQ, @Mail)";            sql += " ; SELECT @@IDENTITY";
                SqlParameter[] para = new SqlParameter[]
                    {
                        new SqlParameter("@LoginId", user.LoginId),
                        new SqlParameter("@LoginPwd", user.LoginPwd),
                        new SqlParameter("@Name", user.Name),
                        new SqlParameter("@QQ", user.QQ),
                        new SqlParameter("@Mail", user.Mail)
                    };
                int newId = DBHelper.GetScalar(sql, para);
                return GetUserById(newId);
            }看了很多资料里的理论,
    这个DAL层里的方法“添加用户”参数是 BLL层里的user类,这样做是不是违背了“弱耦合思想”和“下层不知道上层”?