1
我试图让一个登录屏幕Windows窗体应用程序,Form3将打开Form如果用户名和密码是否正确。无法使该日志表格在C#/ SqlDataReader的问题
的代码链接到数据库
的代码如下:
private void button1_Click(object sender, EventArgs e)
{
string u_id = textBox1.Text;
string u_pwd = textBox2.Text;
SqlConnection conn = new SqlConnection("Data Source=mmtsql.XXX.XXXXX.ac.uk;Initial Catalog=mmt12-186;User ID=XXXXXX;Password=XXXXXX");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = ("SELECT * FROM UsersData WHERE User = '" + textBox1.Text + "'");
cmd.Parameters.AddWithValue("un", u_id);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read() == false)
{
label3.Text = "Invalid Username or Password !";
return;
}
string realpwd = reader.GetString(0);
if (u_pwd == realpwd)
{
Form1 formload = new Form1();
formload.Show();
}
}
我每次运行此代码,我得到与线异常:
string realpwd = reader.GetString(0);
例外是:
Invali d当没有数据存在时尝试读取。
的UsersData
表有3列,ID,用户,密码
由于去“阿尔弗雷德·桑斯”谁回答了这个问题,现在的问题是没有错误的,但没有数据显示,作为如果Button1_Click的没有方法,当前的代码是:
private void button1_Click(object sender, EventArgs e)
{
string u_id = textBox1.Text;
string u_pwd = textBox2.Text;
SqlConnection conn = new SqlConnection("Data Source=mmtsql.XX.XXX.ac.uk;Initial Catalog=XXXXXXX ;User ID=XXXX;Password=XXXXX");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = ("SELECT * FROM UsersData WHERE User = @un");
cmd.Parameters.AddWithValue("@un", u_id);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
if (reader["Password"].ToString() == u_pwd)
{
Form1 formload = new Form1();
formload.Show();
}
else
{
label3.Text = "Invalid Username or Password !";
}
}
什么是你期待发生的,什么是真正发生?从你的代码中,你所做的只是显示一个表单,除了在显示表单之前进行快速密码测试之外,你没有对返回的数据做任何事情。 – 2013-03-09 14:50:31