问:windows form下的用户登录程序如何写
主 题: 问:windows form下的用户登录程序如何写?
作 者: zhangweibing (冰)
等 级: ^
信 誉 值: 97
所属论坛: .NET技术 C#
问题点数: 100
回复次数: 10
发表时间: 2003-9-12 10:03:47
程序用C#和WindowsForm方式开发.主窗口名称为Form1.cs
在程序设定
string username = "abc";
string password = "123";
要求进入程序前,先弹出一个login窗口,
窗口上有用户名输入文本框和密码输入文本框和确认按钮.
输入用户名和密码后,确认按钮事件中是否为上述变量值"abc"和"123",
如果正确,进入程序主窗口Form1.cs.
如果不正确,关闭窗口返回到Windows.
程序如何写?
能否提供思路,或实例.
回复人: sqhua(拉长弓兮射天狼) ( 五级(中级)) 信誉:93 2003-9-12 10:12:27 得分:5
private void button1_Click(object sender, System.EventArgs e)
{
string sql = "select pass from pass";
string pass = DA.查询单值(sql).ToString();
if(textBox1.Text.Trim() != pass)
{
MessageBox.Show("密码不正确,不能登录");
textBox1.Text = "";
textBox1.Focus();
return;
}
else
{
this.Visible = false;
f_main f = new f_main();
f.ShowDialog();
Close();
}
}
回复人: wjhs(杰借) ( 一级(初级)) 信誉:100 2003-9-12 10:12:53 得分:5
数据库加C#,通过提取数据判断是不是已经注册为用户就行啦.
回复人: sqhua(拉长弓兮射天狼) ( 五级(中级)) 信誉:93 2003-9-12 10:14:28 得分:0
private void button1_Click(object sender, System.EventArgs e)
{
string sql = "select pass from pass";
string pass = DA.查询单值(sql).ToString();
if(textBox1.Text.Trim() != pass)
{
MessageBox.Show("密码不正确,不能登录");
textBox1.Text = "";
textBox1.Focus();
return ;
}
else
{
this.Visible = false ;
f_main f = new f_main();
f.ShowDialog();
Close();
}
}
回复人: sqhua(拉长弓兮射天狼) ( 五级(中级)) 信誉:93 2003-9-12 10:16:21 得分:0
以上代码实现最简单的登录控制,只有用密码,不用用户名
回复人: angxain(張憲) ( 三级(初级)) 信誉:100 2003-9-12 10:17:49 得分:5
首先在數據庫建表
id Name LoginName PassWord
在登入的時候進行判斷,查詢數據庫中是否有該輸入的用戶,或者直接用ComboBox將用戶綁定下來,請看代碼:
SqlCommand cmd = new SqlCommand("SELECT * FROM User", cn);
DataTable dt = new DataTable();
SqlDataAdapter da = New SqlDataAdapter(cmd);
da.Fill(dt);
comboBox1.DataSource = dt;
comboBox1.ValueMember = "PassWord";
comboBox1.DisplayMember = "LoginUser";
//在確認下面寫代碼
if(txtPassword.Text==comboBox1.SelectedValue.ToString())
{
//登入系統
}
else
{
MessageBox.Show("密碼不正確");
//我沒有在工程里面寫,所以代碼可能有細節錯誤。
}
回复人: snof(雪狼) ( 两星(中级)) 信誉:105 2003-9-12 10:30:06 得分:60
把它定义为
public static
string username = "abc";
string password = "123";
然后在主程序的LOAD事件里写如下:
Login f = new Login();
DialogResult res = f.ShowDialog();
if (res != DialogResult.OK)
{
this.Close();
this.Dispose(true);
Application.Exit();
return;
}
string username = f.textBoxWorkID.Text;
string password = f.textBoxPassword.Text;
try
{
//判断用户名和密码是否正确
if (错误的话)
{
MessageBox.Show("用户名或密码错!");
this.Close();
this.Dispose(true);
Application.Exit();
return;
}
}
catch (Exception)
{
}
在你输入密码的窗口里记得把两个TextBox设为public型的,这样才可以调用
回复人: zhongwanli(想一下,就会可以) ( 三级(初级)) 信誉:100 2003-9-12 10:33:45 得分:5
当然,必须有一个设置数据库连接的窗口
C#+SqlServer 就可以解决!
具体办法,请自己查看MSDN 中,有例子
当前我给个网址你吧!
http://www.chinabs.net/csharp/default.asp?infoid=185
这是一个数据库访问的例子
回复人: zhangweibing(冰) ( 一级(初级)) 信誉:97 2003-9-12 10:35:30 得分:0
button1放在什么地方.
是在Form1.cs上吗,
return;语句又返回到那里去了.
如果login窗口是单独先执行的,如何跳转到Form1.cs主窗口去.
我的Form1.cs主窗口是数据输入界面.
数据库查询很好解决,我给出string username的目的是注重实现该功能的具体方法.
注册窗口是否是在一个单独的login.cs中实现,还是就在Form1.cs中通过弹出对话框的方法实现.
两个Form之间的数据如何传递.
对话框Dialog(指login界面)与Form之间如何实现数据传递.
以上是我的问题的关键.
回复人: zhongwanli(想一下,就会可以) ( 三级(初级)) 信誉:100 2003-9-12 10:35:31 得分:0
当然,必须有一个设置数据库连接的窗口
C#+SqlServer 就可以解决!
具体办法,请自己查看MSDN 中,有例子
当前我给个网址你吧!
http://www.chinabs.net/csharp/default.asp?infoid=185
这是一个数据库访问的例子
回复人: zhpsam109(阿波) ( 二级(初级)) 信誉:100 2003-9-12 10:41:53 得分:5
string sql="select * from 登陆表";
SqlCommand cmd=new SqlCommand(sql,conn); // 创建SqlCommand对象,注意参数
SqlDataReader sqlda=cmd.ExecuteReader(); //创建SqlDataReader对象
if(textBox1.Text=="")
{
MessageBox.Show("请输入用户名!","系统提示",MessageBoxButtons.OK);
textBox1.Focus();
}
else if(textBox2.Text=="")
{
MessageBox.Show("请输入密码!","系统提示",MessageBoxButtons.OK);
textBox2.Focus();
}
else if(textBox1.Text=="admin" && textBox2.Text=="admin")
{
pForm.username="系统管理员";
pForm.dt=DateTime.Now;
this.Close();
}
else
{
while(sqlda.Read()) //检查用户名和密码是否正确
{
if(sqlda.GetString(1).Trim()==textBox1.Text.Trim() && sqlda.GetString(2).Trim()==textBox2.Text.Trim())
{
pForm.username=textBox1.Text; //获取当前用户
pForm.dt=DateTime.Now; //获取登陆时间
this.Close(); //密码正确则关闭登陆窗口
}
else
{
MessageBox.Show("用户名和密码不正确,请重新输入!","系统提示",MessageBoxButtons.OK);
textBox1.Text="";
textBox2.Text="";
textBox1.Focus();
}
} //end while
}
sqlda.Close(); //注意,必须关闭SqlDataReader对象
回复人: skykevin(天下) ( 二级(初级)) 信誉:100 2003-9-12 10:43:47 得分:15
主窗口:
private void Form1_Load(object sender, System.EventArgs e)
{
dlgLogon curForm=new dlgLogon();
switch (curForm.ShowDialog())
{
case DialogResult.OK:
case DialogResult.Cancel:
this.Close();
break;
}
}
登录窗口:
验证密码:对,则返回DialogResult.OK
,错,则返回DialogResult.Cancel
.
回复人: zhangweibing(冰) ( 一级(初级)) 信誉:97 2003-9-12 11:41:03 得分:0
snof(雪狼) 的回答正是我所需要的。
回答好极了。
问题已经解决,程序已经调通。
谢谢snof(雪狼) 。
该问题已经结贴 ,得分记录: sqhua (5)、 wjhs (5)、 angxain (5)、 snof (60)、 zhongwanli (5)、 zhpsam109 (5)、 skykevin (15)、