[英]ASP.NET C# Validating username and password
我正在嘗試從MySql服務器驗證用戶名和密碼。 登錄驗證有效,但我一生都無法弄清楚為什么“創建新用戶”驗證無效。
這是用於注冊新用戶的代碼。 發生了什么事?
catch (Exception)
{
Label1.Text = "Brukernavnet er allerede i bruk";
}
看起來這部分^某種程度上對我來說是毀了它,每當我測試運行此代碼時,我都會收到此消息。
protected void newBtn_Click(object sender, EventArgs e)
{
String cs = "Database=trafikkskole; User=user; Password=password";
MySqlConnection dbconnect = new MySqlConnection(cs);
try
{
dbconnect.Open();
cmd.CommandText = "INSERT INTO user (username, password) VALUES (@un, @pw)";
cmd.Parameters.AddWithValue("@un", inputUser.Text);
cmd.Parameters.AddWithValue("@pw", inputPw.Text);
cmd.Connection = dbconnect;
int a = cmd.ExecuteNonQuery();
if (a > 0)
{
Label1.Text = "Gratulerer! Du har nå laget en bruker!";
}
else
{
Label1.Text = "ERROR";
}
}
catch (Exception)
{
Label1.Text = "Brukernavnet er allerede i bruk";
}
finally
{
dbconnect.Close();
}
}
}
編輯:
如果我這樣嘗試:
protected void newBtn_Click(object sender, EventArgs e)
{
String cs = "Database=trafikkskole; User=root; Password=root";
MySqlConnection dbconnect = new MySqlConnection(cs);
String sql = "SELECT * FROM user";
MySqlCommand cmd = new MySqlCommand(sql, dbconnect);
da = new MySqlDataAdapter(cmd);
MySqlCommandBuilder cb = new MySqlCommandBuilder(da);
ds = new DataSet("TEST");
da.Fill(ds, "user");
Response.Write(ds.Tables["user"].Rows.Count);
try
{
dbconnect.Open();
cmd.CommandText = "INSERT INTO user (username, password) VALUES (@un, @pw)";
cmd.Parameters.AddWithValue("@un", inputUser.Text);
cmd.Parameters.AddWithValue("@pw", inputPw.Text);
cmd.Connection = dbconnect;
int a = cmd.ExecuteNonQuery();
if (a > 0)
{
Label1.Text = "Gratulerer! Du har nå laget en bruker!";
}
else
{
Label1.Text = "ERROR";
}
}
catch (Exception Exception)
{
Label1.Text = "Brukernavnet er allerede i bruk";
}
finally
{
dbconnect.Close();
}
}
}
最終可能使用戶沒有用戶名或密碼。
有很多事情可能會出錯。 您應該檢查exception.message以獲得對它可能是什么的見解。
例如,在catch語句中放置一個斷點,看看是否為諸如...之類的事件引發了異常,該用戶名是否已經存在,並且SQL引發了錯誤。 ...或者用戶名/密碼為空,太長等...
無論如何,將catch語句更改為catch(Exception exception)
並查看異常是什么。
我要感謝大家的努力,找到了一個可行的解決方案,並將其發布在此處以供將來參考。
protected void newBtn_Click(object sender, EventArgs e)
{
String cs = "Database=trafikkskole; User=root; Password=root";
MySqlConnection dbconnect = new MySqlConnection(cs);
try
{
if (!string.IsNullOrWhiteSpace(inputUser.Text) && !string.IsNullOrWhiteSpace(inputPw.Text))
{
dbconnect.Open();
Label1.Text = "Gratulerer! Du har nå laget en bruker!";
string qry = "INSERT INTO user(username, password) VALUES (@un, @pw)";
cmd = new MySqlCommand(qry, dbconnect);
cmd.Parameters.AddWithValue("@un", inputUser.Text);
cmd.Parameters.AddWithValue("@pw", inputPw.Text);
cmd.Connection = dbconnect;
cmd.ExecuteNonQuery();
}
else
{
Label1.Text = "ERROR";
}
}
catch (Exception)
{
Label1.Text = "Brukernavnet er allerede i bruk";
}
finally
{
dbconnect.Close();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.