Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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 SqlDataReader,读取类中的多个字符串_C#_Sql - Fatal编程技术网

C# C SqlDataReader,读取类中的多个字符串

C# C SqlDataReader,读取类中的多个字符串,c#,sql,C#,Sql,如何允许我的方法读取多个字符串,以便它可以读取用户ID或电子邮件并防止重复数据 public bool usersduplicate(string username) { bool duplicate = false; string selectSQL = "SELECT username FROM Users"; Connect(); SqlCommand cmd = new SqlCom

如何允许我的方法读取多个字符串,以便它可以读取用户ID或电子邮件并防止重复数据

       public bool usersduplicate(string username)
    {
        bool duplicate = false;
        string selectSQL = "SELECT username FROM Users";
        Connect();
        SqlCommand cmd = new SqlCommand(selectSQL, conn);
        SqlDataReader dr = cmd.ExecuteReader();

        while (dr.Read())
        {
            if (dr["username"].ToString().ToUpper() == username.ToUpper())
            {
                duplicate = true; 
            }
            
        }
这就是我检查数据存在的方式

if (ctrls.checkclubexist(txtNameClubReg.Text) == true || txtNameClubReg.Text == "")
        {
        }

我建议您在存储过程中编写查询,并将用户名作为参数传递给SP,然后运行ExecuteScalar以获取值。不需要选择所有用户

SELECT username FROM Users where username = @userName

使用多个值的方式与方法当前使用一个值的方式相同。实际上,在您当前使用用户名的任何代码行上,您都会添加电子邮件。例如

如果您的方法当前接受一个参数:

public bool usersduplicate(string username)
接受两个:

public bool usersduplicate(string username, string email)
当前从数据中选择用户名的位置:

string selectSQL = "SELECT username FROM Users";
在此处选择假定为列名的两个值:

string selectSQL = "SELECT username, email FROM Users";
当前比较一个值的位置:

if (dr["username"].ToString().ToUpper() == username.ToUpper())
比较两者:

if (dr["username"].ToString().ToUpper() == username.ToUpper() || dr["email"].ToString().ToUpper() == email.ToUpper())

真的没什么特别的。基本上,在这种情况下,当您能够做一件事情时(将输入值与数据值进行比较),并且希望再次做这件事情时,您通常只需重复您已经在做的事情。

您应该查看一些教程,了解如何使用c从db迭代数据