用户名是否已经存在

riveryeah 2009-05-14 11:29:27
新手 用户注册时,验证用户名是否存在,数据库已连上,javascript也写完了,页面Load里也载入了javascript,但是出不来那个用户名是否存在,那个一般处理程序改怎么写?
public static string CheckName(BBSUserInfo user)
{
using (SqlConnection conn = new SqlConnection(strconn))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select name from BBSUser where name=@name";
cmd.Parameters.Add(new SqlParameter("@name", user.Name));

conn.Open();
SqlDataReader sdr = cmd.ExecuteReader();
string name="";
while(sdr.Read())
{
name=Convert.ToString(sdr["name"]);

}
return name;

}
}

========================================================

<%@ WebHandler Language="C#" Class="CheckNameHandler" %>

using System;
using System.Web;
using System.Text;
using Model;
using Biz;

public class CheckNameHandler : IHttpHandler {

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";


string name = context.Request["name"];
BBSUserInfo user = new BBSUserInfo(name);
BLL.BBSUserBLL.CheckName(user);


if (name ==user.Name)
{
context.Response.Write("用户名已存在!");
}
else
{
context.Response.Write("用户名可用");
}
}

public bool IsReusable {
get {
return false;
}
}

}
...全文
194 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
messi_yang 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vedy0451 的回复:]
name ==user.Name 改成equals
[/Quote]
正解。主要是遍歷下你用戶的資料庫中是否有此記錄
然後給出一個提示~!
firefly_2008 2009-05-14
  • 打赏
  • 举报
回复
主要應該還是你頁面級代碼的問題吧
仔細檢查下看看哦
Vedy 2009-05-14
  • 打赏
  • 举报
回复
name ==user.Name 改成equals
xuming120 2009-05-14
  • 打赏
  • 举报
回复

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//用户名文本框获得焦点
ScriptManager1.SetFocus(txtUser);

}
}
private bool CheckUser()
{

int count = 0;
string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString ;
using (SqlConnection conn = new SqlConnection(str))
{

SqlCommand cmd = new SqlCommand("select count(*) from [users] where uname=@uname", conn);

SqlParameter param = new SqlParameter("@uname", SqlDbType.VarChar, 10);
param.Value = txtUser.Text.Trim();

cmd.Parameters.Add(param);

conn.Open();

count = (int)cmd.ExecuteScalar();

conn.Close();

}
if (count == 0)
{
return true;
}
else {
return false;
}
}
protected void txtUser_TextChanged(object sender, EventArgs e)

{
if (CheckUser())

{
lblInfo.Text = "用户名可以使用";

//如果用ASP.NET AJAX时,使文本框获得焦点的方法(经试验txtPassword.Focus()方法或者ScriptManager.RegisterStartup()方法都无效)

////ScriptManager1.SetFocus(txtPassword);
}

else

{
lblInfo.Text = "用户名已存在";

//ScriptManager1.SetFocus(txtUser);

//用户名存在则选中文本框内用户名方便修改

ScriptManager.RegisterStartupScript(this.UpdatePanel2, UpdatePanel2.GetType(), "", "document.getElementById('txtUser').select();", true);
}
}



<body>

<form id="form1" runat="server">

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>

用户名 
<br />
<asp:TextBox ID="txtUser" runat="server" AutoPostBack="True" OnTextChanged="txtUser_TextChanged" ></asp:TextBox>

<asp:Label ID="lblInfo" runat="server"></asp:Label>
</ContentTemplate>

</asp:UpdatePanel>
   </div>
</form>
</body>

正好刚做一个.你看看吧
kkai189 2009-05-14
  • 打赏
  • 举报
回复
public static string  CheckName(BBSUserInfo user) 
{
using (SqlConnection conn = new SqlConnection(strconn))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select name from BBSUser where name=@name";
cmd.Parameters.Add(new SqlParameter("@name", user.Name));

conn.Open();
SqlDataReader sdr = cmd.ExecuteReader();
string name="";
while(sdr.Read())
{
name=Convert.ToString(sdr["name"]);

}
return name;

}
}


string name = context.Request["name"];
BBSUserInfo user = new BBSUserInfo(name);
BLL.BBSUserBLL.CheckName(user); 这样调用有问题
programagain 2009-05-14
  • 打赏
  • 举报
回复
你这个WebHandler是处理这么的?aspx?还是其他?
TaiNo 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chen_ya_ping 的回复:]
楼主你看你的代码CheckName()这个函数是有返回值string的,而你在调用这个函数的时候却没有接受这个返回值。
string checkName=BLL.BBSUserBLL.CheckName(user);


if (name ==checkName)
{
context.Response.Write("用户名已存在!");
}
else
{
context.Response.Write("用户名可用");
}
[/Quote]

正解
chen_ya_ping 2009-05-14
  • 打赏
  • 举报
回复
楼主你看你的代码CheckName()这个函数是有返回值string的,而你在调用这个函数的时候却没有接受这个返回值。
string checkName=BLL.BBSUserBLL.CheckName(user);


if (name ==checkName)
{
context.Response.Write("用户名已存在!");
}
else
{
context.Response.Write("用户名可用");
}
1,项目功能:前台功能1.商城首页:为企业提供一个网站首页,在上面显示网站的重要信息包括企业LOGO,用户的登录,用户的注册,一级分类显示,最新商品及热门商品显示等。2.用户的注册:主要针对未注册的用户,完成注册功能使用,在注册过程中,需要进行数据的前台非空校验,及使用AJAX完成用户名是否存在的异步校验。3.用户的登录:已经注册的用户,输入用户名和密码即可登录。4.用户的退出:针对已经登录的用户,退出该系统使用。5.首页商品展示:显示最新商品及热门商品。方便用户了解最新以及最热门商品。6.商品详情展示:点击某个具体商品的时候,可以显示商品的详情。以便用户可以方便的了解商品的具体信息。7.分类页面商品展示:根据某个分类的信息去展示商品。可以方便用户查找相应分类商品。8.购物车:此功能为用户提供购物功能,用户可以根据自己需要,将自己喜欢的商品添加到购物车,也可以从购物车中移除商品,甚至清空购物车中的所有商品。9.订单:登录用户可以将自己喜欢商品进行购买,产生订单。可以对自己产生的订单进行在线的付款。以及可以根据用户信息,查询自己的订单。后台功能1.管理员登录:管理员根据用户名和密码完成登录功能。2.一级分类管理:管理员可以对前台显示的一级分类进行管理包括添加,修改,删除,查询的功能操作。3.二级分类管理:管理员可以对前台显示的二级分类进行管理包括添加,修改,删除,查询的功能操作。 4.商品管理:管理员可以对前台上显示的商品进行管理包括添加,修改,删除,查询的功能操作同时要可以上传商品的图片。5.订单管理:管理员可以对所有的用户产生的订单进行管理包括未付款的,已经付款的,已经发货的,交易完成的订单。可以修改订单状态及异步加载订单项。6.用户管理:管理员可以对注册过的用户进行管理包括修改用户信息,删除用户,查询用户。      适合做毕业设计参考项目。2,涉及技术:SSM框架,Tomcat3,开发环境:IDEA,MySQL数据库4,讲解方式:从环境安装,项目搭建,以及项目介绍等进行讲解5,包含资料:项目源码(含数据库文件),环境安装包,项目文档。

62,047

社区成员

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

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

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

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