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