Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果记录中输入的值在另一个字段中已有值,如何在标签中给出错误?_C#_Registration - Fatal编程技术网

C# 如果记录中输入的值在另一个字段中已有值,如何在标签中给出错误?

C# 如果记录中输入的值在另一个字段中已有值,如何在标签中给出错误?,c#,registration,C#,Registration,我在网络表单中有三个文本框,分别是用户名、密码和用户注册时必须输入的IC号。如果此人输入的IC号与数据库中任何记录的IC值匹配,它将更新此人在具有匹配IC的记录的用户名字段和密码字段中键入的用户名和密码。更新部分很好,但我想做的是,如果数据库中输入的nric用户名和密码的记录被填写,我想在标签中有一个错误,表明该nric已经有用户名和密码。帮助 等等,如果我在NRIC框中输入了S9583728F,并想注册一个帐户,但由于在我的表S9583728F中已经有一个用户名和密码,即settsser和dd

我在网络表单中有三个文本框,分别是用户名、密码和用户注册时必须输入的IC号。如果此人输入的IC号与数据库中任何记录的IC值匹配,它将更新此人在具有匹配IC的记录的用户名字段和密码字段中键入的用户名和密码。更新部分很好,但我想做的是,如果数据库中输入的nric用户名和密码的记录被填写,我想在标签中有一个错误,表明该nric已经有用户名和密码。帮助

等等,如果我在NRIC框中输入了S9583728F,并想注册一个帐户,但由于在我的表S9583728F中已经有一个用户名和密码,即settsser和ddddd,我希望它给我,这个NRIC已经有一个用户名和密码。

错误


只需更改您的
更新
查询,如下所示:

string sql = @"UPDATE patient 
                        SET 
                        pUserName = @pUserName,
                        pPassword = @pPassword
                        WHERE pIC = @pIC and pUserName='' and pPassword =''";
解决方案2:编写一个单独的函数,如果返回false else display警告消息,则继续更新

            boolean IsIDExist()
            {
                SqlCommand cmd = new SqlCommand();                   
                string sql = @"SELECT count(*) from  patient                           
                        WHERE pIC = @pIC" and pUserName!='' and pPassword !=''";

                cmd.Parameters.AddWithValue("@pIC", txtIC.Value);

                cmd.Connection = con;
                cmd.CommandText = sql;

                con.Open();

                if(Convert.ToInte32(cmd.ExecuteScalar())>0)
                return true;

                return false;
            }
完整代码:

            boolean IsIDExist()
            {
                SqlCommand cmd = new SqlCommand();                   
                string sql = @"SELECT count(*) from  patient                           
                        WHERE pIC = @pIC" and pUserName!='' and pPassword !=''";

                cmd.Parameters.AddWithValue("@pIC", txtIC.Value);

                cmd.Connection = con;
                cmd.CommandText = sql;

                con.Open();

                if(Convert.ToInte32(cmd.ExecuteScalar())>0)
                return true;

                return false;
            }

   if (Page.IsValid)
    {
        using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sacpConnectionString"].ConnectionString))
        {
            try
            {
                SqlCommand cmd = new SqlCommand();
                Guid guid;
                guid = Guid.NewGuid();
                string sql = @"UPDATE patient 
                        SET 
                        pUserName = @pUserName,
                        pPassword = @pPassword
                        WHERE pIC = @pIC and pUserName='' and pPassword=''";

                cmd.Parameters.AddWithValue("@pIC", txtIC.Value);
                cmd.Parameters.AddWithValue("@pUsername", txtUsername.Value);
                cmd.Parameters.AddWithValue("@pPassword", txtPassword.Value);



                cmd.Connection = con;
                cmd.CommandText = sql;

                con.Open();

                cmd.ExecuteNonQuery();


                if (!IsIDExist())
                {
                    Session.Add("ID", id);
                    Session.Add("Username", txtUsername.Value);
                    Session.Add("Password", txtPassword.Value);
                    FormsAuthentication.SetAuthCookie(txtUsername.Value, true);
                    Response.Redirect("registered.aspx");
                }
                else
                {
                    lblErrorMessage.Text = "IC Already Exist";
                }
            }


            /*
            catch (Exception)
            {
                lblErrorMessage.Text = "IC does not exist";
            }
            */

            finally
            {
                con.Close();
            }
        }
    }

在您尝试插入新记录之前,只需查询数据库并查看IC值是否已经存在。我添加了我的代码@CM kanode我刚才忘记添加代码,结果被否决了!!。更新部分很好,但我想做的是,如果数据库中输入的nric用户名和密码的记录被填写,我想在标签中有一个错误,表明该nric已经有用户名和密码@CM Kanode您的最后一行,您的意思是pIC=@pIC和pUserName=“”和pPassword=“”";对您需要在where中再添加两个条件clause@Jordjmax:对不起,我犯了错误,请尝试使用单引号,查看我编辑的答案谢谢,但是现在如果我在文本框中输入S9583728F并单击“注册”,它会将我重定向到registered.aspx。我希望它停留在页面上,并在标签上提示一个错误,说这个NRIC已经有了用户名和密码@苏达卡尔Tillapudi@Jordjmax:好的,首先告诉我是不是在更新UID和密码为空的记录?
            boolean IsIDExist()
            {
                SqlCommand cmd = new SqlCommand();                   
                string sql = @"SELECT count(*) from  patient                           
                        WHERE pIC = @pIC" and pUserName!='' and pPassword !=''";

                cmd.Parameters.AddWithValue("@pIC", txtIC.Value);

                cmd.Connection = con;
                cmd.CommandText = sql;

                con.Open();

                if(Convert.ToInte32(cmd.ExecuteScalar())>0)
                return true;

                return false;
            }

   if (Page.IsValid)
    {
        using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sacpConnectionString"].ConnectionString))
        {
            try
            {
                SqlCommand cmd = new SqlCommand();
                Guid guid;
                guid = Guid.NewGuid();
                string sql = @"UPDATE patient 
                        SET 
                        pUserName = @pUserName,
                        pPassword = @pPassword
                        WHERE pIC = @pIC and pUserName='' and pPassword=''";

                cmd.Parameters.AddWithValue("@pIC", txtIC.Value);
                cmd.Parameters.AddWithValue("@pUsername", txtUsername.Value);
                cmd.Parameters.AddWithValue("@pPassword", txtPassword.Value);



                cmd.Connection = con;
                cmd.CommandText = sql;

                con.Open();

                cmd.ExecuteNonQuery();


                if (!IsIDExist())
                {
                    Session.Add("ID", id);
                    Session.Add("Username", txtUsername.Value);
                    Session.Add("Password", txtPassword.Value);
                    FormsAuthentication.SetAuthCookie(txtUsername.Value, true);
                    Response.Redirect("registered.aspx");
                }
                else
                {
                    lblErrorMessage.Text = "IC Already Exist";
                }
            }


            /*
            catch (Exception)
            {
                lblErrorMessage.Text = "IC does not exist";
            }
            */

            finally
            {
                con.Close();
            }
        }
    }