学习笔记(一)
注册页面的完成小结
参考书目:ASP.NET通用模块及典型系统开发 张蓓 编著
SQL SERVER 2000 数据库教程 唐学忠 主编
参考资源:网上资源
本机运行环境:vwd2005 express 、sql server2005
书中代码运行环境:vs2003、sql server2000
把书上的代码搬到自己的机子上,结果没法运行,错误百出。。。,于是开始逐个修改,总结如下:
一、书中代码Register1.aspx.cs中
protected System.Web.UI.WebControls.TextBox tbUsername;等定义语句应删掉,否则运行时报错,提示这些变量已经在命名空间中定义了。
二、添加两个引用 System.Ttext 、 System.Security.Cryptography,否则字符串加密函数Encrypt的代码不被识别。
三、创建的存储过程全跑到master数据库去了,解决办法:修改存储过程加上如下语句:
Use Dbname -------需添加存储过程的数据库名
Go
四、没有正常连接上数据库,解决办法如下:
1、将sql server 2005 的外围设置中的远程连接改为 同时使用TCP\IP和Name Pipe.
2、修改sql server的登录模式为混合模式,修改办法是:打开sql管理器、右键单击服务器名,在下拉菜单中选择属性,修改,重启sql server 服务。
3、启用sa帐号
4、连接字段为:data source=.\\sqlexpress;user id=sa;password= ;initial catalog=Dbname
五、cmd.Parameters.Add("@username", tbusername.Text)改为
cmd.Parameters.AddWithValue("@username", tbusername.Text)否则出现警告错误。
Register.aspx.cs代码如下:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Security.Cryptography;
namespace book05
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
tbusername.Attributes.Add("size", "40");
tbpassword.Attributes.Add("size", "40");
tbpassword2.Attributes.Add("size", "40");
tbrealname.Attributes.Add("size", "40");
tbphoneno.Attributes.Add("size", "40");
tbEmail.Attributes.Add("size", "40");
tbAddress.Attributes.Add("size", "40");
}
protected void btnRegister_Click(object sender, EventArgs e)
{
string connStr = "data source=.\\sqlexpress;user id=sa;password=123456;initial catalog=register2";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand("CreateUser", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@username", tbusername.Text);
cmd.Parameters.AddWithValue("@password", Encrypt(tbpassword.Text));
cmd.Parameters.AddWithValue("@realname", tbrealname.Text);
cmd.Parameters.AddWithValue("@gender", ddlgender.SelectedValue);
cmd.Parameters.AddWithValue("@phoneno", tbphoneno.Text);
cmd.Parameters.AddWithValue("@email", tbEmail.Text);
cmd.Parameters.AddWithValue("@address", tbAddress.Text);
SqlParameter paramOut = cmd.Parameters.AddWithValue("@return_value", "");
paramOut.Direction = ParameterDirection.ReturnValue;
try
{
conn.Open();
cmd.ExecuteNonQuery();
if ((int)cmd.Parameters["@return_value"].Value == 0)
{
Response.Write("注册成功");
}
else
{
Response.Write("该用户名已存在");
}
}
catch (SqlException ex)
{
Response.Write("数据访问出错!\n");
}
catch (Exception ex)
{
Response.Write("错误!\n");
}
finally
{
conn.Close();
}
}
private string Encrypt(string strInput)
{
byte[] b = Encoding.UTF8.GetBytes(strInput);
MD5 md5 = new MD5CryptoServiceProvider();
return Encoding.UTF8.GetString(md5.ComputeHash(b));
}
}
}
浙公网安备 33010602011771号