我有一個關於c#和mysql的問題。我想製作一個連接到本地數據庫的simpel登錄表單。我有連接工作(測試它),但我有一個讀取我的數據,從選擇返回的問題。mysql datareader找不到行c#
我想把一個ID放到一個字符串中,所以我可以顯示它(這只是爲了測試)。現在我已經搜索了很多谷歌,幾乎每個人都有這樣的事情。當我執行它不會給出錯誤,但我的sqldatareader什麼也沒有找到。在第一個,如果我問它是否有任何行,並沒有。
我在做什麼錯?我的用戶名/密碼確實存在於我的數據庫中。
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 eindwerk
{
public partial class LoginForm : Form
{
string myConnection = "Server=localhost;Database=mydb;Uid=root;Pwd=root;";
MySqlCommand cmd;
MySqlConnection connection;
public LoginForm()
{
InitializeComponent();
connection = new MySqlConnection(myConnection);
connection.Open();
}
private void loginForm_Load(object sender, EventArgs e)
{
this.Location = new Point((Screen.PrimaryScreen.WorkingArea.Width - this.Width)/2,
(Screen.PrimaryScreen.WorkingArea.Height - this.Height)/2);
}
private void btnLogin_Click(object sender, EventArgs e)
{
try
{
cmd = connection.CreateCommand();
cmd.CommandText = "SELECT idlogin FROM login WHERE (username='@username') AND (password='@password') LIMIT 1;";
cmd.Parameters.AddWithValue("@username", txtbxLoginUsername.Text);
cmd.Parameters.AddWithValue("@password", txtbxLoginPassword.Text);
MySqlDataReader rdr = cmd.ExecuteReader();
rdr.Read();
if (rdr.HasRows)
{
while (rdr.Read())
{
label1.Text = rdr.GetInt32("idlogin").ToString();
}
}
else
{
lblLoginError.Visible = true;
}
rdr.Close();
}
catch {
lblLoginError.Text = "Nope";
lblLoginError.Visible = true;
}
}
}
}
顯示您的代碼作爲文本.. –
是的。你應該使用'編輯'按鈕 –