注册信息保存到数据库.docx
- 文档编号:6678707
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:11
- 大小:17.74KB
注册信息保存到数据库.docx
《注册信息保存到数据库.docx》由会员分享,可在线阅读,更多相关《注册信息保存到数据库.docx(11页珍藏版)》请在冰点文库上搜索。
注册信息保存到数据库
一、所需知识要点
q ASP.NET的网页代码模型。
q Web窗体基本控件。
q 数据库基础。
q ADO.NET常用对象。
q Web窗体数据控件。
基本了解了以上章节的知识点后,就能够熟练学习和开发此模块。
二、首先用户需要访问网站,访问网站后就会选择是否进行注册,如果需要注册则网站提供一个注册模块给用户,用户就能够进行注册。
在用户完成注册后,用户信息还应该被管理员管理,管理员能够通过用户管理页面进行页面管理。
q 注册页面:
提供用用户注册操作。
q 管理页面:
提供管理员管理页面。
在基本规划了Web应用中需要制作的模块,可以为这些模块进行模块的流程分析。
三、数据库设计
表为用户的基本信息创建了字段,这些字段的意义分别为:
q id:
用于标识用户的ID号,并为自动增长的主键。
q username:
用于标识用户名。
q password:
用于标识用户密码。
q sex:
用于标识用户性别。
q picture:
用于标识用户头像。
q IM:
用于标识用户的IM信息,包括QQ/MSN等。
q information:
用于标识用户的个性签名。
q others:
用于标识用户的备注信息。
q ifisuser:
用于标识用户是否为合法用户。
四、根据数据库字段,创建好页面,
center”> LabelID=”Label1″runat=”server”Text=”用户名”> Label> TextBoxID=”TextBox1″Width=”200px”runat=”server”> TextBox>
RequiredFieldValidatorID=”RequiredFieldValidator1″ValidationGroup=”validgroup”ControlToValidate=”TextBox1″ runat=”server”ErrorMessage=”用户名不能为空”>
RequiredFieldValidator>
LabelID=”Label2″runat=”server”Text=”密码”>
Label>
TextBoxID=”TextBox2″Width=”200px”runat=”server”>
TextBox>
RequiredFieldValidatorID=”RequiredFieldValidator2″ValidationGroup=”validgroup”ControlToValidate=”TextBox2″ runat=”server”ErrorMessage=”密码不能为空”>
RequiredFieldValidator>
LabelID=”Label3″runat=”server”Text=”性别”>
Label>
DropDownListID=”DropDownList1″runat=”server” Width=”130px”> ListItem>0 ListItem> ListItem>1 ListItem>
DropDownList>
RequiredFieldValidatorID=”RequiredFieldValidator3″ValidationGroup=”validgroup”ControlToValidate=”DropDownList1″ runat=”server”ErrorMessage=”性别必须选择”>
RequiredFieldValidator>
LabelID=”Label4″runat=”server”Text=”头像”>
Label>
TextBoxID=”TextBox3″runat=”server”Width=”200px”>
TextBox>
LabelID=”Label5″runat=”server”Text=”IM”>
Label>
TextBoxID=”TextBox4″runat=”server”Width=”200px”>
TextBox>
LabelID=”Label6″runat=”server”Text=”个性签名”>
Label>
TextBoxID=”TextBox5″runat=”server”Width=”180px”>
TextBox>
LabelID=”Label7″runat=”server”Text=”备注”>
Label>
TextBoxID=”TextBox6″runat=”server”Width=”200px”>
TextBox>
LabelID=”Label8″runat=”server”Text=”Label”Visible=”False”>
Label>
ButtonID=”Button1″runat=”server”Text=”注册”onclick=”Button1_Click”/>
版权信息
本网站不会将用户信息泄露给任何机构
五、代码实现数据的插入和判断
在用户单击按钮控件时会执行数据插入操作,在数据插入之前就需要对信息进行过滤,示例代码如下所示。
protectedvoidButton1_Click(objectsender,EventArgse)
{
if(Check(TextBox1.Text)||Check(TextBox2.Text)||Check(TextBox4.Text)||
Check(TextBox5.Text)||Check(TextBox6.Text)||Check(TextBox7.Text)) //判断
{
Label8.Text=“用户信息中不能够包含特殊字符如<,>,’,//,\等,请审核“; //输出信息
}
else
{
//注册代码
}
}
上述代码使用了Check函数对文本框控件进行了用户资料的判断,Check函数的实现如下所示。
protectedboolCheck(stringtext) //判断实现
{
if(text.Contains(“<”)||text.Contains(“>”)||text.Contains(“‘”)||
text.Contains(“//”)||text.Contains(“\”)) //检查字串
{
returntrue; //返回真
}
else
{
returnfalse; //返回假
}
}
Check函数定义了基本的判断方式,如果文本框信息中包含“<”,“>”,“’”,“/”,“”等字符串时,该方法将会返回true,否则会返回false。
这也就是说,如果字符串中包含了这些字符,则会返回true。
在Button1_Click函数中就会判断包含非法字符,并进行提示,否则会执行注册代码。
对关键字的过滤是非常必要的,这样能够保证应用程序的完整性并提高应用程序健壮性,同时也对数据库中的完整性进行了保护。
当用户单击按钮控件时,如果对用户进行了非空验证和关键字过滤后,就能够进行数据的插入,用户可以使用ADO.NET进行数据操作,示例代码如下所示。
protectedvoidButton1_Click(objectsender,EventArgse)
{
if(Check(TextBox1.Text)||Check(TextBox2.Text)||Check(TextBox3.Text)||
Check(TextBox4.Text)||Check(TextBox5.Text)||Check(TextBox6.Text)) //检查字串
{
Label8.Text=“用户信息中不能够包含特殊字符如<,>,’,//,\等,请审核“; //输出信息
}
else
{
try
{
SqlConnectioncon=
newSqlConnection(“server=’(local)’;database=’Register’;uid=’sa’;pwd=’sa’”);//建立连接
con.Open(); //打开连接
stringstrsql=
“insertintoregister(username,password,sex,picture,im,information,others,ifisuser)values
(‘”+TextBox1.Text+“‘,’”+TextBox2.Text+“‘,’”+DropDownList1.Text+“‘,’”+
TextBox3.Text+“‘,’”+TextBox4.Text+“‘,’”+TextBox5.Text+“‘,’”+TextBox6.Text+“‘,0)”;
SqlCommandcmd=newSqlCommand(strsql,con); //创建执行
cmd.ExecuteNonQuery(); //执行SQL
Label8.Text=“注册成功,请牢记您的信息“; //提示成功
}
catch
{
Label8.Text=“出现错误信息,请返回给管理员“; //抛出异常
}
}
}
上述代码通过ADO.NET实现了数据的插入,但是上述代码有一个缺点,如果用户注册了一个用户并且名称为abc,当这个用户注销并再注册一个用户名称为abc时,如果依旧将数据插入到数据库则会出现错误。
值得注意的是,这个错误并不是逻辑错误,但是这个错误会造成不同的用户可能登录了同一个用户信息并产生信息错误。
为了避免这种情况的发生,在用户注册前首先需要执行判断,示例代码如下所示。
stringcheck=“select*fromregisterwhereusername=’”+TextBox1.Text+“‘”;
SqlDataAdapterda=newSqlDataAdapter(check,con); //创建适配器
DataSetds=newDataSet(); //创建数据集
da.Fill(ds,“table”); //填充数据集
if(da.Fill(ds,“table”)>0) //判断同名
{
Label8.Text=“注册失败,有相同用户名“; //输出信息
}
else
{
SqlCommandcmd=newSqlCommand(strsql,con); //创建执行对象
cmd.ExecuteNonQuery(); //执行SQL
Label8.Text=“注册成功,请牢记您的信息“; //输出成功
}
在用户注册时,首先从数据库查询出是否已经包含这个用户名的信息,如果包含则不允许用户注册,如果没有,则说明用户是一个新用户,可以进行注册。
本人也是菜鸟一个~~一起努力!
请各位老大指教!
!
谢谢!
!
附带一下代码:
default.aspx.cs
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Data.SqlClient;
usingSystem.Data;
namespace登录注册
{
publicpartialclassDefault:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(IsPostBack)
{
Label8.Visible=true;
}
}
protectedboolCheck(stringtext) //判断实现
{
if(text.Contains(“<”)||text.Contains(“>”)||text.Contains(“‘”)||
text.Contains(“//”)||text.Contains(“\”)) //检查字串
{
returntrue; //返回真
}
else
{
returnfalse; //返回假
}
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
if(Check(TextBox1.Text)||Check(TextBox2.Text)||Check(TextBox3.Text)||
Check(TextBox4.Text)||Check(TextBox5.Text)||Check(TextBox6.Text)) //判断
{
Label8.Visible=true;
Label8.Text=“用户信息中不能够包含特殊字符如<,>,’,//,\等,请审核”; //输出信息
}
else
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 注册 信息 保存 数据库
![提示](https://static.bingdoc.com/images/bang_tan.gif)