我试图从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();
}
}
}
最终可能会使用户没有用户名或密码。
答案 0 :(得分:0)
有很多事情可能会出错。您应该检查exception.message以获得有关它可能是什么的见解。
例如,在catch语句中放置一个断点,看看是否为...之类的东西抛出了异常,因为用户名已存在且SQL正在抛出错误。 ...或者是用户名/密码为空,太久等等......
无论如何,将catch语句更改为char
并查看异常是什么。
答案 1 :(得分:0)
我要感谢大家的努力,找到了一个有效的解决方案,将其发布在这里供将来参考。
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();
}
}