C# 数据库c中存在if值时出现错误处理程序#

C# 数据库c中存在if值时出现错误处理程序#,c#,C#,我正在尝试创建一个错误处理程序,如果数据库中已有值,则无法保存该错误处理程序中的值。但是,是的,错误消息正在显示,同时对话框结果也在显示。如果值存在,我希望显示错误&如果值不存在,对话框结果将显示 这是我的密码: usercheck(); DialogResult dr = MetroMessageBox.Show(this, "Are you sure you want to Save without your desire Sales Count or Sales Amou

我正在尝试创建一个错误处理程序,如果数据库中已有值,则无法保存该错误处理程序中的值。但是,是的,错误消息正在显示,同时对话框结果也在显示。如果值存在,我希望显示错误&如果值不存在,对话框结果将显示

这是我的密码:

usercheck();

        DialogResult dr = MetroMessageBox.Show(this, "Are you sure you want to Save without your desire Sales Count or Sales Amount?", "Wait!", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

        if (txtCount.Text == "0" || txtAmount.Text == "0")
        {
            if (dr == DialogResult.Yes)
            {

                Data.con.Open();



                string SaveStr = "Insert into dbinfo.tbluser (UserID, UserName, UserPassword, UserLevel, TargetCount, TargetAmount) Values (@UserID, @UserName, @UserPassword, @UserLevel, @TargetCount, @TargetAmount)";
                MySqlCommand SaveCmd = new MySqlCommand(SaveStr, Data.con);

                SaveCmd.Parameters.AddWithValue("@UserID", txtID.Text);
                SaveCmd.Parameters.AddWithValue("@UserName", txtName.Text);
                SaveCmd.Parameters.AddWithValue("@UserPassword", txtPassword.Text);
                SaveCmd.Parameters.AddWithValue("@UserLevel", cbLevel.Text);
                SaveCmd.Parameters.AddWithValue("@TargetCount", txtCount.Text);
                SaveCmd.Parameters.AddWithValue("@TargetAmount", txtAmount.Text);

                SaveCmd.ExecuteNonQuery();
                Data.con.Close();
                LoadData();

                MetroMessageBox.Show(this, "User Entry Saved!", "Saved!", MessageBoxButtons.OK, MessageBoxIcon.Information);


                clear();

            }
            else if (dr == DialogResult.No)
            {
                clear();
            }
        }
这是我的usercheck()方法代码


谢谢大家!

让用户检查方法返回这样的bool
UserExists
方法。
它的工作原理如下:
在存储用户之前,
if
检查用户是否存在。
UserExists
方法中,如果用户存在,则显示错误,并返回
true

然后,如果返回
true
StoreUser
方法将在存储用户之前返回。
如果返回
false
(用户不存在),则
StoreUser
方法将正常继续

    public static void StoreUser()
    {
        if ( UserExists( "username" ) )
        {
            //Will stop here if user exists
            return;
        }
        //Storing user code
    }
    public static bool UserExists(string userName)
    {
        if (userName == "EXISTS")
        {
            //Show error
            return true;
        }
        return false;
    }

注*:
HasRows
只会检查表中是否包含一行或多行,这是自解释的,因此在代码中,if语句将始终为true,除非表为空。可能重复@MongZhu。他不是问如何检查它,而是问如何修复显示的两条消息(用户存在,但仍将尝试插入)。
    public static void StoreUser()
    {
        if ( UserExists( "username" ) )
        {
            //Will stop here if user exists
            return;
        }
        //Storing user code
    }
    public static bool UserExists(string userName)
    {
        if (userName == "EXISTS")
        {
            //Show error
            return true;
        }
        return false;
    }