前言
信息科小助手是自己第一次用心写的小程序,水平很有限,程序写的很一般,现在写下来做个记录,以备不时之需。
界面
- 用户名拼音首字母
- 登陆的用户名
- 请输入密码
上面这三项用label控件,不用存储数据,制作显示之用。
控件对应的名称
标签名 | 文本输入框的对应变量名 |
---|---|
用户名拼音首字母 | czybh_textbox |
登陆的用户名 | xm_textbox |
请输入密码 | xm_textbox |
操作说明
我在数据库里建了一个助记码的表,里面存储的是用户的名字的首字母的简写。
为了登陆方便,用户直接输入自己名称的首字母,然后敲回车,在登陆的用户名里显示出自己的名字,再在下面输入密码,点击登陆。
- 定义公共变量
public static string M_name;//登陆用户名
public static string M_pasw;//登陆密码
敲回车显示姓名事件
private void czybh_textbox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 0x20) e.KeyChar = (char)0; //禁止空格键 if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return; //处理负数,不允许输入负数和空格键 if (e.KeyChar == 13) { try{ string login_up = "select * from admin_software where zjm like'%" + czybh_textbox.Text.Trim() + "%'"; SqlConnection myconn = new SqlConnection(login_ConStr); SqlCommand cmdd = new SqlCommand(login_up, myconn); myconn.Open(); SqlDataReader reader = cmdd.ExecuteReader(); reader.Read(); czybh_textbox.Text = reader["zjm"].ToString();//读取助记码并赋值 xm_textbox.Text = reader["xm"].ToString();//读取密码并赋值 myconn.Close(); mm_textbox.Focus(); } catch{ MessageBox.Show("查无此人,请重新输入"); czybh_textbox.Text = ""; xm_textbox.Text = ""; } } }
到这一步,姓名和密码都已经被赋值并且在TextBox上显示出来了。
- 点击登陆时的验证事件。
private void czy_dl_Click(object sender, EventArgs e)
{
try{
if (this.czybh_textbox.Text.ToString() == "")
{
MessageBox.Show("请填写操作员编号!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
czybh_textbox.Focus();//焦点回到输入助记码
}
else if (this.mm_textbox.Text.ToString() == "")
{
MessageBox.Show("请填密码!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
SqlConnection login_del_myconn = new SqlConnection(login_ConStr);
try{
string pd_login = "select * from admin_software where zjm='" + czybh_textbox.Text.Trim() + "' and xm='" + xm_textbox.Text.Trim() + "'";
SqlCommand cmd = new SqlCommand(pd_login, login_del_myconn);
login_del_myconn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
if (reader["mm"].ToString().Trim() == this.mm_textbox.Text.Trim())
{
zb_class.czy_code = reader["zjm"].ToString().Trim();//zb_class是一个单独的类,里面有一个czy_code的静态变量用于存储读取到的助记码
yb_db.czyxm = reader["xm"].ToString().Trim();//与上面同理
yb_db.czymm = reader["mm"].ToString().Trim();//同理
M_name = xm_textbox.Text.ToString();//把读取到的姓名存在M_name里用于后面调用使用
Logging.WriteKeylog("当前登录用户为:"+yb_db.czyxm);//Logging是个日志的方法,后面再详细说明
this.Hide();
new Main().ShowDialog();//对比密码成功,进入主界面Main
}
else
{
MessageBox.Show("密码错误!请重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
mm_textbox.Focus();
mm_textbox.Text = "";
}
}
else
{
MessageBox.Show("输入的用户名代码不存在!请重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
czybh_textbox.Focus();
}
}
catch (Exception ex){
MessageBox.Show(ex.Message);
}
finally{
login_del_myconn.Close();
}
}
}
catch{
}
}
小结
登陆主要是textbox和label、button控件的结合操作,相对简单,用到的方法不多,事件也只有按钮的单击事件和敲回车的KeyPress事件。