回 帖 发 新 帖 刷新版面

主题:小弟求一个C#用记登录程序

数据库是ACCESS

字段是admin
用户名:1

密码:1

小弟需求一个C#的用户登录程序,只有"确定"和"重置"两个键字就行,还有两个TEXTBOX,一个是用户名,一个是密码,谢谢了

回复列表 (共7个回复)

沙发

建议你使用SQL数据库
ACCESS和SQL在登陆代码区别不是很大,你可以自己找书看看就知道

用SQL登陆代码:
类中写入
private static string connString="Server=localhost;uid=sa;pwd=;database=webdevelop";

        public static string ConnString
        {
            get
            {
                return connString;
            }
                    }
登陆按钮写入

  string name=this.TextBoxName.Text;
            string pwd=this.TextBoxPassword.Text;
            if(name.IndexOf("'")>-1    || name.IndexOf(' ')>-1    || name.IndexOf('"')>-1
                || pwd.IndexOf("'")>-1 || pwd.IndexOf(' ')>-1 || pwd.IndexOf('"')>-1)
            {
                this.TextBoxState.Text="用户名或密码包含有非法字符!";
                return;
            }
            SqlConnection conn = new SqlConnection(MyClass.ConnString);
            string sqlstr="select * from loginuser where (username='"+name+"') and ("
                +"userpwd='"+pwd+"')";
            SqlCommand command = new SqlCommand(sqlstr,conn);
            conn.Open();
            try
            {
                SqlDataReader dr=command.ExecuteReader();
                if(dr.Read()==true)
                {
                    SetEnable(true);
                    Session["userName"]=name;
                    this.TextBoxState.Text="用户"+name+"登录成功。";
                }
                else
                {
                    SetEnable(false);
                    Session["userName"]="";
                    this.TextBoxState.Text="登录失败,无此用户或密码不正确!";
                }
                dr.Close();
            }
            catch(Exception err)
            {
                this.TextBoxState.Text="系统错误:"+err.Message;
            }
            conn.Close();
        }

其中:webdevelop是数据库  
     loginuser是表

板凳

回帖不错,过滤了单引号

3 楼

不错

4 楼

能否将整个过程说一下,我按照这个做,但是没有成功
谢谢啊!

5 楼

我做好了,判断相对简单一些,不过功能倒是全的。下面我把源码贴出来,楼主可以看看是不是用得上。我这里是可以用的,绝对正确。因为我是直接从我自己的程序上拷过来的,所以格式有点问题,楼主自己纠正一下就可以了。
先建一个存储过程:

CREATE PROCEDURE Login
@user  varchar(20),
@pwd varchar(20)
AS
begin
declare @number as int
select @number=count(*) from 用户表 where 用户名=@user and 密码=@pwd
return @number
end
GO

下面是登录窗口的源吗:
        private void btnOK_Click(object sender, System.EventArgs e)
        {
            string str=ConfigurationSettings.AppSettings["str"].ToString();
            SqlConnection conn=new SqlConnection(str);
            conn.Open();
            SqlCommand cmd=new SqlCommand("Login",conn);
            cmd.CommandType=CommandType.StoredProcedure;
            cmd.Parameters.Add("@user",SqlDbType.VarChar);
            cmd.Parameters.Add("@pwd",SqlDbType.VarChar);
            SqlParameter sp=cmd.Parameters.Add("@number",SqlDbType.Int);
            sp.Direction=ParameterDirection.ReturnValue;
            cmd.Parameters[0].Value=this.txtUname.Text.Trim();
            cmd.Parameters[1].Value=this.txtPWD.Text.Trim();
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch
            {    
            }
            int n=Convert.ToInt32(cmd.Parameters[2].Value);
            if(n>0)
            {
                frmMain fm=new frmMain();
                fm.name=this.txtUname.Text;
                fm.Show();
                this.Hide();
            }
            else
                MessageBox.Show("用户名或密码错误","警告");
            conn.Close();
        }

以上这个就是确定按钮的源码,重置就相当简单了,只要设置两个文本框为空就可以了。即txt1.Text="",txt2.Text=""。

6 楼

忘了提一下了,我的连接字符串用了配置文件,楼主得改一下。只要将
string str=ConfigurationSettings.AppSettings["str"].ToString();
改成
string str="server=.;uid=sa;pwd=;database=test";就可以了。第一个表示本机地址,第二是用户帐号,第三个是密码,这两个你设的什么就是什么了,第四个是数据库,你只要把我的test改成你自己的数据库名字就可以了。

7 楼

private bool Check()
            {
                if(this.DialogResult==DialogResult.OK)
                {
                    this.sqlDataAdapter1.SelectCommand.Parameters["@a"].Value=this.textBox1.Text;
                    this.sqlDataAdapter1.SelectCommand.Parameters["@b"].Value=this.textBox2.Text;
//                    this.sqlDataAdapter1.SelectCommand.Parameters["@c"].Value=this.comboBox1.Text;
                    this.sqlDataAdapter1.Fill(this.dataset11);

                    Dataset1.dlmimaRow yr=this.dataset11.dlmima.NewdlmimaRow();
                    if(this.dataset11.dlmima.Rows.Count==0)
                    {
                    
                        MessageBox.Show("登录失败,请重新输入用户名和密码","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
                        return false;
                    
                    }
                    else
                    {
                    
                        return true;
                    
                    }
                }

                else
                {
                    this.DialogResult=DialogResult.Cancel;
                    return true;
                }
            }

我来回复

您尚未登录,请登录后再回复。点此登录或注册