這是我的代碼。我正在嘗試創建一個登錄頁面。代碼的問題在於'count'值不會增加。 是的,我的表中有足夠的數據。 每次它轉到else條件的一部分,說明無效的登錄憑證。 我的連接建立發生在不同的類,所以在這裏我只是調用對象。 這到底是什麼地方出了問題? 請幫忙!查詢用戶表時「登錄」不成功
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace WindowsFormsApplication1
{
public partial class login : Form
{
public login()
{
InitializeComponent();
}
public void login_Load(object sender, EventArgs e)
{
//to show tip on mouseover on text fields
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.username_combobox, "username cannot be more that 20 characters long");
ToolTip1.SetToolTip(this.password_txt, "Not more than 10 characters");
//mysql connection
Connection con = new Connection();
MySqlConnection conn = con.GetConnection();
//filling the combo box with data from project.userdetails.username
string query = "select username from project.user_details;";
MySqlDataAdapter da = new MySqlDataAdapter(query, conn);
DataTable dt = new DataTable();
da.Fill(dt);
username_combobox.DataSource = dt;
username_combobox.DisplayMember = "username";
conn.Close();
}
private void forgotpassword_label_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
forgot_password fp = new forgot_password();
fp.Show();
}
private void newuser_linklable_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
newuser nu = new newuser();
nu.Show();
}
private void submit_btn_Click(object sender, EventArgs e)
{
try
{
Connection con = new Connection();
MySqlConnection conn = con.GetConnection();
MySqlCommand selectCommand = new MySqlCommand("select * from project.user_details where username =' " + this.username_combobox.Text + " ' and password = ' " + this.password_txt.Text + " '; ", conn);
MySqlDataReader myreader;
myreader = selectCommand.ExecuteReader();
int counter = 1;
while (myreader.Read())
{
counter = counter + 1;
}
if (counter == 2)
{
MessageBox.Show("Login successfull");
Dashboard_form db = new Dashboard_form();
db.Show(); //open dashboard
Hide();
}
else if (counter > 1)
{
MessageBox.Show("Access denied. more than 1 account present");
}
else
{
MessageBox.Show("Invalid login credentials");
}
conn.Close();
}
catch(Exception x)
{ MessageBox.Show(x.Message); }
}
private void username_combobox_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
}
}
在您的查詢文本中,您連接了字符串(一個非常糟糕的舉動),但是這樣做會在用戶名前後添加空格。我敢打賭,這個查詢不返回任何東西(也是在密碼周圍) – Steve 2014-09-28 08:23:05