C# C SqlDataReader,读取类中的多个字符串
如何允许我的方法读取多个字符串,以便它可以读取用户ID或电子邮件并防止重复数据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
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迭代数据