找到一个用户注册的源码 麻烦各位老大给解释一下

mimi1002 2008-07-17 10:21:22
AddUser.cs
public class AddUser
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbuser"].ConnectionString);

public AddUser()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public bool AddUserS(String name, String pass)
{
String T_name = name;

String T_pass = pass;

String sql = "insert into info values('" + T_name + "','" + T_pass + "')";

SqlCommand cmd = new SqlCommand(sql, con);

int Result = -1;

try
{
con.Open();

Result = cmd.ExecuteNonQuery();

if (Result != -1)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
throw (ex);
}
finally
{
con.Close();
}
return false;
}
}


这个应该是注册功能实现
public partial class DisposeEvent : System.Web.UI.Page
{
CheckUser cu = new CheckUser();

AddUser au = new AddUser();

logon go = new logon();

protected void Page_Load(object sender, EventArgs e)
{
switch (Request.QueryString["Event"])
{
case "Reg":
if (au.AddUserS(Request.QueryString["Name"].ToString(), Request.QueryString["Pass"].ToString()))
{
Response.Write("true");

Response.End();
}
else
{
Response.Write("false");

Response.End();
}
break;
...全文
74 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
谈阿大 2008-07-17
  • 打赏
  • 举报
回复
Try catch finally 是捕捉异常
try 块中是捕捉异常的代码
catch 出现异常怎么办?
finally 是如果没有异常,告诉程序应该做点啥
[/code]
mimi1002 2008-07-17
  • 打赏
  • 举报
回复
谢谢真的是谢谢你了
我需要的就是你说的那个

还有一个就是try的问题。。。那些我都看不懂。。。
Jinglecat 2008-07-17
  • 打赏
  • 举报
回复
"insert into info values('" + T_name + "','" + T_pass + "')"

这也是一种比较糟糕的写法!你最好显示的指定列名,注意顺序。
假如省去列名,由数据库对应,则很容易出错。

"insert into info(UserName, Password) values('" + T_name + "','" + T_pass + "')"
mimi1002 2008-07-17
  • 打赏
  • 举报
回复
谢谢
解释了一下发现差不多能看明白了
我还有个问题
"insert into info values('" + T_name + "','" + T_pass + "')";
这句应该是sql语句吧,这个数据库大概只有两个字段?

如果是我得表里有很多字段应该什么写呢?谢谢

还有就是那些try 可以不要么? 他们有什么作用呢?
cndrip 2008-07-17
  • 打赏
  • 举报
回复
代码是注册用户
我怎么看都别扭
我不喜欢写种写法。。
Jinglecat 2008-07-17
  • 打赏
  • 举报
回复
郁闷,辛辛苦苦标记的红色没了....
Jinglecat 2008-07-17
  • 打赏
  • 举报
回复
一段看似简单,但问题颇多的代码,仅作如下注释,

代码本身无需多讨论,如何换作我写,我会如何写呢? 更多欢迎拍砖,


public class AddUser
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbuser"].ConnectionString); // 实例化 Connection 对象。……对于Connection,声明为类级字段,这不是明知的选择!

public AddUser()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public bool AddUserS(String name, String pass)
{
String T_name = name; // 上下文看,没发现拷贝赋值给局部变量有什么意义

String T_pass = pass;

String sql = "insert into info values('" + T_name + "','" + T_pass + "')"; // 构造 sql script

SqlCommand cmd = new SqlCommand(sql, con); // 实例化 command

int Result = -1;

try
{
con.Open(); // 尝试打开链接

Result = cmd.ExecuteNonQuery(); // 尝试执行指定的 sql

// 这里判断 result 也没有实际意义,根据上下文意思有意义的应该是
// return (Result == 1); // 你绝对能确定一次注册用户,只能且仅能写入一条记录,否则就是 failure
// 按此功能,更应该直接返回 result return, 由上层调用如BLL来确定是否 succes,DAL 尽量不要做跟业务有关的事情。

if (Result != -1)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
// 应该
// MyDALException dalEx = new MyDALException("Failure adding new user", ex); // 如果不包装内部异常,你将如法跟踪到原始错误的堆栈信息。
// dalEx.Data.Add("Sql", sql); // 甚至可以存储导致异常的 sql
// throw dalEx; // 重新抛出

throw (ex);
}
finally
{
con.Close();
}
return false; // 此句应该永远不会执行,但是没有此句会编译错误!!!
}
}
downmoon 2008-07-17
  • 打赏
  • 举报
回复
没什么啊! 就是通过sql语句返回的结果判断有没有注册成功! 
amandag 2008-07-17
  • 打赏
  • 举报
回复
估计是用ajax,否则Response.Write出信息没什么意义

62,205

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧