如何建好web空网站,参考博文:https://blog.csdn.net/qq_44394562/article/details/116308453
这里我使用两个TextBox和三个Button控件,简单排列好布局
同样的方式我们建立一个注册界面:
这里我使用了三个TextBox、两个Button、一个Label和一个CompareValidator验证控件
其中CompareValidator验证控件用来验证密码和确认密码栏是否一致,如果不一致给出错误提示。
ErrorMessage设置为:注意:两次输入的密码不一致!
然后绑定好两个控件:
为了方便,这里我使用VS内置的SQL数据库
右键项目,添加新项,选择SQL Server数据库,点击确定
建好数据库后开始建表
最后点击左上角更新
选择更新
说明更新成功。
接下来配置Web.config文件:
<configuration>
<connectionStrings>
<add name="数据库名称+ConnectionString" connectionString="Data Source=.\ SQLEXPRESS;AttachDbFilename=’数据库文件路径’;
Integrated Security=True;Connect Timeout=30;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
好了,接下来编写C#后台代码:
首先建立与数据库的连接,在Login.aspx.cs文件的所有事件之外定义数据库连接字符串和连接对象:
static string Constr = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=D:\\vs\\work\\Login\\Login\\App_Data\\MyData.mdf;Integrated Security=True";
SqlConnection conn = new SqlConnection(Constr);
回到Login.aspx界面双击登录按钮:
//获取用户在页面上的输入
string userLoginName = TextBox1.Text.Trim(); //用户登录名
string userPassword = TextBox2.Text.Trim(); //密码
SqlDataReader dr; // 新建DataReader对象
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT [Password] FROM [User] where LoginName=@LoginName";
cmd.CommandType = CommandType.Text;
// 添加查询参数对象,并给参数赋值
SqlParameter para = new SqlParameter("@LoginName", SqlDbType.VarChar, 50);
para.Value = userLoginName;
cmd.Parameters.Add(para);
try // 打开conn连接,检索User表的Password字段
{
conn.Open(); // 打开数据库连接
dr = cmd.ExecuteReader(); // 将检索记录行填充到DataReader对象中
if (dr.Read()) //如果用户存在
{ // 如果密码正确,显示登录成功
if (dr.GetString(0).Trim() == userPassword)
{ // 登录成功后记下该用户登录名,以便后续功能使用
Session.Add("login_name", userLoginName);
TextBox1.Text = "";
LblCaution.Text = "登录成功!";
Response.Write("");
Response.Write("");//打开新的页面,原窗口被代替。
}
else //如果密码错误,给出提示
{
Response.Write("");
}
}
else //如果用户不存在
{
Response.Write("");
}
dr.Close(); //关闭DataReader对象
}
catch (SqlException sqlException)
{
Response.Write(sqlException.Message); // 显示连接异常信息
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
双击Login.aspx中的注册按钮,添加页面跳转:
Response.Redirect("Register.aspx");
双击重新输入按钮,设置清空:
TextBox1.Text = "";
TextBox2.Text = "";
接下来在Register.aspx.cs文件中的所有事件之外定义数据库连接字符串和连接对象:
static string Constr = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=D:\\vs\\work\\Login\\Login\\App_Data\\MyData.mdf;Integrated Security=True";
SqlConnection conn = new SqlConnection(Constr);
接下来到Register.aspx页面中双击注册按钮:
输入如下代码:
conn.Open();
//检查用户是否已存在
SqlCommand Cmd = new SqlCommand();
Cmd.Connection = conn;
Cmd.CommandText = "select [LoginName] from [User]";
SqlDataReader dr = Cmd.ExecuteReader();
while (dr.Read())
{
if (dr.GetString(0).Trim() == TextBox1.Text)
{
LblCaution.Text = "账号"+TextBox1.Text + "已经存在,请重新填写账号!";
conn.Close();
return;
}
}
conn.Close();
string SqlStr;
SqlStr = "Insert into [User]([LoginName],[Password])values(@LoginName,@Password)";
Cmd.CommandText = SqlStr;
//添加参数对象,并给参数赋值
SqlParameter para1 = new SqlParameter("@LoginName", System.Data.SqlDbType.VarChar, 50);
para1.Value = TextBox1.Text;
Cmd.Parameters.Add(para1);
SqlParameter para2 = new SqlParameter("@Password", System.Data.SqlDbType.VarChar, 50);
para2.Value = TextBox2.Text;
Cmd.Parameters.Add(para2);
try
{
conn.Open();//打开数据库连接
Cmd.ExecuteNonQuery();//将添加记录
LblCaution.Text = "恭喜你,注册成功!赶快返回登录吧!";
}
catch (SqlException sqlException)
{
Response.Write(sqlException.Message);//显示连接异常信息
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
}
}
双击返回按钮,输入如下代码:
Response.Write("");