我正在使用asp.net创建一个网站。到目前为止,我已经完成了一个注册页面,它将详细信息保存到数据库表中。
如何检查该表中是否有用户名和密码,然后允许他们进入下一页?
这是我的注册代码;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["userinfo.ConnectionString"].ConnectionString);
conn.Open();
string insertQuery = "INSERT INTO [user] (UserName, FirstName, LastName, Email, Password, Country) VALUES (@uname, @fname, @lname, @email, @password, @country)";
SqlCommand comm = new SqlCommand(insertQuery, conn);
comm.Parameters.AddWithValue("@uname", usernametextbox.Text);
comm.Parameters.AddWithValue("@fname", fnametextbox.Text);
comm.Parameters.AddWithValue("@lname", lnametextbox.Text);
comm.Parameters.AddWithValue("@email", emailtextbox.Text);
comm.Parameters.AddWithValue("@country", DropDownListcountry.Text);
comm.Parameters.AddWithValue("@password", passwordtextbox.Text);
comm.ExecuteNonQuery();
conn.Close();
我猜我需要创建一个SELECT查询,可能带有if语句吗?
答案 0 :(得分:0)
克里斯,
你正在对这个问题进行投票,因为你正在问一些你可以非常轻易地使用谷歌自己解决的问题。
话虽如此,是的,你是正确的,你需要使用SELECT语句。我不打算给你确切的.NET或SQL语法,因为这会剥夺你的学习经验。但是,弄清楚如何进行SELECT COUNT查询。您基本上希望使用提供的用户名和密码计算已存在的行数。您可以使用ExecuteScalar而不是使用ExecuteNonQuery,它返回单个值。
然后在.NET代码中,您将查看返回的计数值。如果是0,继续。如果它超过0,则做其他事情。
所有这一切,.NET都有一些内置工具可以帮助您完成所有这些工作。找到并使用它们!
将来,在来到这里并寻求帮助之前,请尝试花更多时间自己做一些研究。
祝你好运!答案 1 :(得分:0)
如果您在登录页面中使用文本框来输入用户名和密码。
string connectionstring = WebConfigurationManager.ConnectionStrings["userinfo.ConnectionString"].ConnectionString;
string sqlstring;
sqlstring = "Select UserName,Password from user where UserName='" +
Texboxusername.Text + "' and Password ='" + Textboxpassword.Text + "'";
SqlConnection con = new SqlConnection(connectionstring);
SqlCommand command = new SqlCommand(sqlstring, con);
System.Data.SqlClient.SqlDataReader reader;
// open a connection with sqldatabase
con.Open();
reader = command.ExecuteReader();
if (reader.Read())//Reader.read() true if found in database
{
Response.Redirect("userHome.aspx");
}
con.close();
第二个解决方案正在使用表单身份验证。从工具箱添加登录到您的登录设计页面。单击它两次。它的相同代码,但Texboxusername.Text和Textboxpassword.Text使用Login.Username和Login.Password。
if (reader.Read())
{ e.Authenticated = true;}
else{e.Authenticated=false;}
最后在Web.config中将其添加到某个地方<system.web> .. </system.web>;
<forms loginUrl="login.aspx" defaultUrl="userHome.aspx" timeout="60"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
经过身份验证的用户将自动重定向到defaultUrl,人们只能从loginUrl访问,这要归功于。
如果您有关于UnobtrusiveValidationMode的错误。
在<configuration>... </configuration>;
<add key="ValidationSettings:UnobtrusiveValidationMode" value="none"/>