在显示是否删除数据时的状态时出现问题。这是代码
public bool isDelete (String nim, String pass)
{
String query = "delete from dbmahasiswa where NIM=@NIM AND Password=@Password";
class_Mahasiswa cm = new class_Mahasiswa();
try
{
connect.Open();
MySqlCommand cmd = new MySqlCommand(query, connect);
cmd.Parameters.AddWithValue("@NIM", nim);
cmd.Parameters.AddWithValue("@Password", pass);
cmd.ExecuteNonQuery();
MySqlDataReader reader;
reader = cmd.ExecuteReader();
int count = 0;
while (reader.Read())
{
count += 1;
}
if (count == 1)
{
System.Windows.Forms.MessageBox.Show("sukses!", "Status");
return true;
}
else
System.Windows.Forms.MessageBox.Show("akun tidak ditemukan", "Status");
return false;
connect.Close();
}
catch (Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message, "Warning");
return false;
}
return true;
}
如果我输入了错误的用户名或密码,它将显示MessageBox“ akun tidak ditemukan”(找不到帐户)。同样,当我输入正确的用户名和密码删除它时,它也会显示MessageBox,因为该函数将在删除数据后读取数据库。
我的问题是,删除数据后如何显示“ Sukses”消息框?
答案 0 :(得分:1)
您正在呼叫 ExecuteReader 。 ExecuteReader 用于读取通过SELECT语句从查询返回的数据。您不能使用它来知道是否已删除一行或更多行。对于此任务,您仅使用 ExecuteNonQuery 并获取返回值即可知道查询命令“影响”的行数
android:exported="false"
此外,似乎您正在使用全局 connect 对象进行连接。通常,这是许多错误的根源,例如catch子句中的错误。如果您的代码导致异常,则您忘记了关闭连接,而在下一次调用 connect.Open 时,将会收到错误消息。我添加了一个 finally 以确保正确关闭您的连接对象。但是,更好的做法是将连接保持在所需代码的本地,在using语句块中打开以将其关闭并放在块末尾