我写了一个登录窗口,在登录窗口上有修改密码的按钮,点击修改密码后会弹出修改密码的窗体;可修改密码后(数据库内数据已更新)登录窗口无法登录,一直报密码错误!请各位大侠帮忙
数据库名为db_canting , 用户信息保存在表emplyee中UserName UserPass
登录窗体loginin
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;namespace canting
{
public partial class Loginin : Form
{
public Loginin()
{
InitializeComponent(); //初始化窗口
} private void login_Click(object sender, EventArgs e) //登录按钮
{
string username = string.Empty , password = string.Empty ;
string sqlconstr = "server=127.0.0.1; database=db_canting;uid=**;pwd=****"; //连接数据库db_canting
SqlConnection dataConnection = new SqlConnection(sqlconstr);
try
{
dataConnection.Open();
}
catch (SqlException eaccessdb) //捕捉数据库连接异常
{
MessageBox.Show(eaccessdb.Message);
} SqlCommand sqlcomm = new SqlCommand("select * from tb_employee where UserName='" + usernametext.Text + "'"); //检索用户名
sqlcomm.Connection = dataConnection;
SqlDataReader reader = sqlcomm.ExecuteReader();
if(reader.Read())
{
username = reader.GetValue(8).ToString(); //获得用户名称
password = reader.GetValue(9).ToString(); //获得用户密码
reader.Close();
dataConnection.Close();
if(username==usernametext.Text)
{
MessageBox.Show(password);
MessageBox.Show(passwordtext.Text);
if (passwordtext.Text==password) //如果用户名与密码匹配
{
MessageBox.Show("登录成功"); //载入主窗体
}
else
{
MessageBox.Show("密码错误!!!","提 示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
passwordtext.Text=String.Empty; //如果密码错误则提示密码错误
}
}
}
else
{
MessageBox.Show("用户名错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
usernametext.Text = String.Empty; //如果用户名错误则提示用户名错误
passwordtext.Text = String.Empty; //如果密码错误则提示密码错误
}
dataConnection.Close(); //关闭数据库连接 }
private void changepassword_Click(object sender, EventArgs e)
{
changepassword chapa = new changepassword();//调用用户修改密码窗体
chapa.ShowDialog();
}
private void canclelogin_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
修改密码窗体 changepassword
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;namespace canting
{
public partial class changepassword : Form
{
public changepassword()
{
InitializeComponent();
} private void changepassword_Load(object sender, EventArgs e)
{ } private void makesurechange_Click(object sender, EventArgs e)
{ if (usernameforchange.Text == "" || oldpassword.Text == ""||newpassword.Text==""||newpasswordagain.Text=="")
{
MessageBox.Show("请将登录名、密码填写完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
string usernamechange = string.Empty, passwordchange = string.Empty;
string sqlconstrchange = "server=127.0.0.1; database=db_canting;uid=sa;pwd=802331"; //连接数据库db_canting
SqlConnection dataConnectionchange = new SqlConnection(sqlconstrchange);
try
{ dataConnectionchange.Open();
}
catch (SqlException eaccessdb) //捕捉数据库连接异常
{
MessageBox.Show(eaccessdb.Message);
} SqlCommand sqlcommchange = new SqlCommand("select * from tb_employee where UserName= '" + usernameforchange.Text + "'"); //检索用户名
sqlcommchange.Connection = dataConnectionchange; SqlDataReader readerchange = sqlcommchange.ExecuteReader();
if (readerchange.Read())
{ usernamechange = readerchange.GetValue(8).ToString(); //获得用户名称
passwordchange = readerchange.GetValue(9).ToString(); //获得用户密码 if (usernamechange == usernameforchange.Text)
{ if (passwordchange == oldpassword.Text)
{
if (newpassword.Text != newpasswordagain.Text)
{
MessageBox.Show("新两次输入不一致", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
else
{
readerchange.Close();
SqlDataAdapter sqlda = new SqlDataAdapter("select * from tb_emplyee", dataConnectionchange);
SqlCommand sqlcomm2 = new SqlCommand("update tb_employee set UserPass='" + newpassword.Text + " ' where UserName='" + usernameforchange.Text + "'");
sqlcomm2.Connection = dataConnectionchange;
sqlda.UpdateCommand = sqlcomm2;
sqlda.UpdateCommand.ExecuteNonQuery();
MessageBox.Show("修改成功");
dataConnectionchange.Close();
this.Close();
} }
else
{
MessageBox.Show("用户名或密码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
} }
else
{
MessageBox.Show("不存在该用户名!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
dataConnectionchange.Close();
}
} private void cancelchange_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
数据库名为db_canting , 用户信息保存在表emplyee中UserName UserPass
登录窗体loginin
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;namespace canting
{
public partial class Loginin : Form
{
public Loginin()
{
InitializeComponent(); //初始化窗口
} private void login_Click(object sender, EventArgs e) //登录按钮
{
string username = string.Empty , password = string.Empty ;
string sqlconstr = "server=127.0.0.1; database=db_canting;uid=**;pwd=****"; //连接数据库db_canting
SqlConnection dataConnection = new SqlConnection(sqlconstr);
try
{
dataConnection.Open();
}
catch (SqlException eaccessdb) //捕捉数据库连接异常
{
MessageBox.Show(eaccessdb.Message);
} SqlCommand sqlcomm = new SqlCommand("select * from tb_employee where UserName='" + usernametext.Text + "'"); //检索用户名
sqlcomm.Connection = dataConnection;
SqlDataReader reader = sqlcomm.ExecuteReader();
if(reader.Read())
{
username = reader.GetValue(8).ToString(); //获得用户名称
password = reader.GetValue(9).ToString(); //获得用户密码
reader.Close();
dataConnection.Close();
if(username==usernametext.Text)
{
MessageBox.Show(password);
MessageBox.Show(passwordtext.Text);
if (passwordtext.Text==password) //如果用户名与密码匹配
{
MessageBox.Show("登录成功"); //载入主窗体
}
else
{
MessageBox.Show("密码错误!!!","提 示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
passwordtext.Text=String.Empty; //如果密码错误则提示密码错误
}
}
}
else
{
MessageBox.Show("用户名错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
usernametext.Text = String.Empty; //如果用户名错误则提示用户名错误
passwordtext.Text = String.Empty; //如果密码错误则提示密码错误
}
dataConnection.Close(); //关闭数据库连接 }
private void changepassword_Click(object sender, EventArgs e)
{
changepassword chapa = new changepassword();//调用用户修改密码窗体
chapa.ShowDialog();
}
private void canclelogin_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
修改密码窗体 changepassword
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;namespace canting
{
public partial class changepassword : Form
{
public changepassword()
{
InitializeComponent();
} private void changepassword_Load(object sender, EventArgs e)
{ } private void makesurechange_Click(object sender, EventArgs e)
{ if (usernameforchange.Text == "" || oldpassword.Text == ""||newpassword.Text==""||newpasswordagain.Text=="")
{
MessageBox.Show("请将登录名、密码填写完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
string usernamechange = string.Empty, passwordchange = string.Empty;
string sqlconstrchange = "server=127.0.0.1; database=db_canting;uid=sa;pwd=802331"; //连接数据库db_canting
SqlConnection dataConnectionchange = new SqlConnection(sqlconstrchange);
try
{ dataConnectionchange.Open();
}
catch (SqlException eaccessdb) //捕捉数据库连接异常
{
MessageBox.Show(eaccessdb.Message);
} SqlCommand sqlcommchange = new SqlCommand("select * from tb_employee where UserName= '" + usernameforchange.Text + "'"); //检索用户名
sqlcommchange.Connection = dataConnectionchange; SqlDataReader readerchange = sqlcommchange.ExecuteReader();
if (readerchange.Read())
{ usernamechange = readerchange.GetValue(8).ToString(); //获得用户名称
passwordchange = readerchange.GetValue(9).ToString(); //获得用户密码 if (usernamechange == usernameforchange.Text)
{ if (passwordchange == oldpassword.Text)
{
if (newpassword.Text != newpasswordagain.Text)
{
MessageBox.Show("新两次输入不一致", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
else
{
readerchange.Close();
SqlDataAdapter sqlda = new SqlDataAdapter("select * from tb_emplyee", dataConnectionchange);
SqlCommand sqlcomm2 = new SqlCommand("update tb_employee set UserPass='" + newpassword.Text + " ' where UserName='" + usernameforchange.Text + "'");
sqlcomm2.Connection = dataConnectionchange;
sqlda.UpdateCommand = sqlcomm2;
sqlda.UpdateCommand.ExecuteNonQuery();
MessageBox.Show("修改成功");
dataConnectionchange.Close();
this.Close();
} }
else
{
MessageBox.Show("用户名或密码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
} }
else
{
MessageBox.Show("不存在该用户名!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
dataConnectionchange.Close();
}
} private void cancelchange_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
如果手动修改数据库,则登录有效