我是初学者编码器,我正在使用C#Asp.Net构建一个项目,我在其中注册用户ID的用户,现在我的问题是如何检查用户ID中是否已存在用户ID或不是当用户尝试注册时,我使用的是sql server 2000?
答案 0 :(得分:10)
根据评论中的代码,我会说你需要的是关于如何使用ADO.NET查询数据的好的入门教程,如果有人可以推荐一个。
首先,您不能在查询中使用“username.Text”,SQL Server对您的ASP.NET页面一无所知,而且它是“用户名”TextBox。
你需要将一个参数传递给你的SqlCommand(不要永远构建一个字符串,如“select * from tbl_userlogin where User_id =”+ username.Text,google for“sql injection attack”if你想知道为什么),像这样:
SqlCommand cmd = new SqlCommand("select * from tbl_userlogin where User_id = @UserID", con);
SqlParameter param = new SqlParameter();
param.ParameterName = "@UserID";
param.Value = username.Text;
cmd.Parameters.Add(param);
然后,您需要实际执行该命令并从中获取SqlDataReader。你不能只在C#代码中引用数据库中的字段,这就是你得到CS0103编译错误的原因。
SqlDataReader reader = cmd.ExecuteReader();
现在,您的SqlDataReader包含查询结果。既然你关心的是它是否找到了什么,你可以使用HasRows属性检查它是否返回任何内容。
if (reader.HasRows)
{
MessageBox.Show("User Id already exists");
}
阅读SqlDataReader - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx - 了解如何在需要时实际访问结果。
答案 1 :(得分:3)
您只需从数据库中查询用户:
select * from User where user_id=<new-input-id>
如果有任何记录,则意味着用户被带走,如果没有,您可以将其插入表格。
答案 2 :(得分:1)
由于您是初学者,因此了解Ado.net中的基本概念可以帮助您更好地
http://msdn.microsoft.com/en-us/library/e80y5yhx%28VS.80%29.aspx
http://www.csharphelp.com/2007/06/using-ado-net-database-1-for-beginners/
http://www.codeproject.com/kb/database/databaseacesswithadonet1.aspx
答案 3 :(得分:0)
它如此简单。首先,您尝试获取(选择)所需用户的记录。
`Select * from UserTable where userId = <your-input-userid>`
如果它返回任何记录,则表示该用户已存在。
如果没有记录返回,则表示相同的用户标识不存在,并且您将此用户标识用于新用户。