主题:小弟求一个C#用记登录程序
yekong34
[专家分:0] 发布于 2005-11-22 18:07:00
数据库是ACCESS
字段是admin
用户名:1
密码:1
小弟需求一个C#的用户登录程序,只有"确定"和"重置"两个键字就行,还有两个TEXTBOX,一个是用户名,一个是密码,谢谢了
回复列表 (共7个回复)
沙发
至尊宝 [专家分:90] 发布于 2005-11-23 22:05:00
建议你使用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是表
板凳
孤单一吻 [专家分:0] 发布于 2005-12-23 21:01:00
回帖不错,过滤了单引号
3 楼
zpplei [专家分:0] 发布于 2005-12-30 23:07:00
不错
4 楼
xwdcb [专家分:0] 发布于 2006-04-14 19:44:00
能否将整个过程说一下,我按照这个做,但是没有成功
谢谢啊!
5 楼
yangjiu [专家分:0] 发布于 2006-04-15 11:33:00
我做好了,判断相对简单一些,不过功能倒是全的。下面我把源码贴出来,楼主可以看看是不是用得上。我这里是可以用的,绝对正确。因为我是直接从我自己的程序上拷过来的,所以格式有点问题,楼主自己纠正一下就可以了。
先建一个存储过程:
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 楼
yangjiu [专家分:0] 发布于 2006-04-15 11:38:00
忘了提一下了,我的连接字符串用了配置文件,楼主得改一下。只要将
string str=ConfigurationSettings.AppSettings["str"].ToString();
改成
string str="server=.;uid=sa;pwd=;database=test";就可以了。第一个表示本机地址,第二是用户帐号,第三个是密码,这两个你设的什么就是什么了,第四个是数据库,你只要把我的test改成你自己的数据库名字就可以了。
7 楼
NDBKLWPS [专家分:0] 发布于 2006-04-19 16:00:00
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;
}
}
我来回复