.net 怎么实现注册页面,填写完用户名离点焦点后,自动检测用户是否存!

网上搜索了一些,加进去,不行呢,偶是菜鸟,太笨了.希望大家把过程说详细一些.现在出100分,解决后再加100分.
现在情况又变了,是不报错了.

输完用户名离开后,label处显示prot,并不显示存在或不存在.

后台这部分该设置那个地方.
数据中的用户名 字段名是vipname

--------------后台这段改哪个地方?--------
public partial class AjaxCheck_chkuser : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string user = this.Request.QueryString["User"].ToString();

if (UserExist(user))
{
Response.Write("存在");
Response.End();
}
else
{
Response.Write("不存在");
Response.End();
}

}

private bool UserExist(string username)
{
if (username == "admin")
return true;
else
return false;
}

}

这个简单。用AJAX或者用JS 来写就行。异步处理。

1》在aspx.cs页面中自动检测用户是否存! 需要调用数据库;在CS类中写。【需要用到AJAX 异步处理】
2》在ASPX 页面中填写完用户名离点焦点后:
<input id="userEMail" onblur="checkEMail(userEMail)" maxLength="64" size="35" name="userEMail" onkeydown="javascript:if(event.keyCode==32) return false;" oncut="return false" onpaste="return false" enableviewstate="true" runat="server" />
3》在js 中:

function checkEMail (pUserEMail)
{
var emailInfor = $("emailInfor");
var emailError = $("emailError");
emailError.style.display = 'none';
if ( dojo.string.trim(pUserEMail.value).length == 0 ){
emailInfor.className = "font_error";
emailInfor.innerHTML = "<img src=images/icon_error.gif />  "+"E-mail can not be empty, re-fill!";
return false;
}
if ( !pUserEMail.value.match(/^\w+((-{1,2}\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-{1,2})[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) ) {
emailInfor.className = "font_error";
emailInfor.innerHTML = "<img src=images/icon_error.gif />  "+"E-mail format is not correct, re-fill!";
return false;
}
var ReturnValue=1;
ReturnValue=register.checkOnlyEmail(pUserEMail.value).value;
if(ReturnValue==0)
{
emailInfor.className = "success";
emailInfor.innerHTML="<img src=images/icon_success.gif />  "+document.all("userEMail").value + " is available.";
// msg.style.color="black";
return true;
}
else
{
emailInfor.className = "font_error";
emailInfor.innerHTML="<img src=images/icon_error.gif />  "+"The ChaseDream ID " + document.all("userEMail").value+ " is not available.If forgot this account number registers the password <a href='forgetPasswordPre.aspx'>please to clickon the here.</a>";
// msg.style.color="red";
return false;
}
return true;
}
建议你看看淘宝的注册和易趣的注册,当初我就是这么做出来的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-01-02
这个简单,我先说说注册页面,你先建立一个数据库.然后一张用户表,如Users 里面设置相关的字段,如UsersPWD等...然后在.net里拖相应的TextBox控件. 注册 就是一个插入过程,现在给你我的注册代码:
public void add() //定义增加用用户方法add
{
if(TextBox1.Text=="") //对用户名是否为空做判断..
{
Page.RegisterStartupScript("","<script language='javascript'>alert('请输入用户名!!!');</script>");
}
else if(TextBox2.Text=="")
{Page.RegisterStartupScript("","<script language='javascript'>alert('请输入密码!!!');</script>");}
else if(TextBox2.Text!=TextBox3.Text)
{Page.RegisterStartupScript("","<script language='javascript'>alert('两次密码不一致!!!');</script>");}
else if(TextBox4.Text=="")
{Page.RegisterStartupScript("","<script language='javascript'>alert('请输入提问!!!');</script>");}
else if(TextBox5.Text=="")
{Page.RegisterStartupScript("","<script language='javascript'>alert('请输入答案!!!');</script>");}
else if(TextBox6.Text=="")
{Page.RegisterStartupScript("","<script language='javascript'>alert('请输入邮箱!!!');</script>");}
else //确认都填写了
{
string conna= ConfigurationSettings.AppSettings["conn"];

SqlConnection conn = new SqlConnection(conna);

//MyDataBase.connstring aa=new connstring();

string sql="insert into Users(UsersID,UsersPWD,Question,Answer,Email)values(@UsersID,@UsersPWD,@Question,@Answer,@Email)";
SqlCommand cmd = new SqlCommand(sql,conn);
cmd.Parameters.Add(new SqlParameter("@UsersID",SqlDbType.VarChar,50));
cmd.Parameters["@UsersID"].Value=TextBox1.Text;

cmd.Parameters.Add(new SqlParameter("@UsersPWD",SqlDbType.VarChar,50));
cmd.Parameters["@UsersPWD"].Value=TextBox3.Text;
cmd.Parameters.Add(new SqlParameter("@Question",SqlDbType.VarChar,50));
cmd.Parameters["@Question"].Value=TextBox4.Text;

cmd.Parameters.Add(new SqlParameter("@Answer",SqlDbType.VarChar,50));
cmd.Parameters["@Answer"].Value=TextBox5.Text;
cmd.Parameters.Add(new SqlParameter("@Email",SqlDbType.VarChar,50));
cmd.Parameters["@Email"].Value=TextBox6.Text;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
Session["aa"]=TextBox1.Text;//传递到AddUsersXS1.aspx
Response.Redirect("~/log/AddUserXS.aspx");

}
}
这个是add方法,然后你在确定按钮的单机事件里 写上 add();
离点焦点后,自动检测用户是否存在是先双机要失去焦点的TextBox然后在里面匹配数据库代码如
string conna = System.Configuration.ConfigurationSettings.AppSettings["conn"];
SqlConnection conn = new SqlConnection(conna);
string sql ="select*from Users where UsersID='"+TextBox1.Text+"'";
SqlCommand cmd = new SqlCommand(sql,conn);
cmd.Connection.Open();
SqlDataReader dr = cmd.ExecuteReader();
if(dr.Read()==true)
{
cmd.Connection.Close();
Page.RegisterStartupScript("","<script language='javascript'>alert('对不起该用户名已存在!!!');</script>");
TextBox1.Text=null;
}
else
{Page.RegisterStartupScript("","<script language='javascript'>alert('恭喜您,该帐户未被注册!!!');</script>");}
}
够详细了吧,,不懂问我QQ251622971本回答被提问者采纳
第2个回答  2008-01-03
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="AjaxCheck_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<script type="text/JavaScript" language="javascript">
var XMLHttp = null;
function CheckUser()
{
try
{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(err1)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(err2)
{
xmlHttp = new XMLHttpRequest();
}
}
var Text1 = document.getElementById("Text1");
var url = "chkuser.aspx?User=" + Text1.value;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = OnHandler;
xmlHttp.send(null);

}
function OnHandler()
{
if(xmlHttp.readyState == 4)
{
var isValid = xmlHttp.responseText;
var exists = document.getElementById("exsits");
exists.innerHTML = isValid.substring(0,4);
}
}
</script>
<input id="Text1" type="text" onblur="CheckUser()" /><label id="exsits"></label><br />

</div>
</form>
</body>
</html>

另一页后台:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;

public partial class AjaxCheck_chkuser : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string user = this.Request.QueryString["User"].ToString();

if (UserExist(user))
{
Response.Write("存在");
Response.End();
}
else
{
Response.Write("不存在");
Response.End();
}

}

private bool UserExist(string username)
{
if (username == "admin")
return true;
else
return false;
}

}

不好意思刚才的那个<input name="vipname" type="text" maxlength="30" id="vipname" />
*</span> <label d="exsits"></label>
中的label的Id少了i
第3个回答  2008-01-05
自己做的,已调试过可以用了,注意验证控件及正则表达式.
C#语言

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.Data.SqlClient;

public partial class regiest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
public void test()
{
Label1.Visible = true;
string sql = "select * from tbluser where userName='" + TextBox1.Text + "'";
DataTable dt;
dt = Class1.ExecSel(sql);
if (dt.Rows.Count>0)
{
Label1.Text = "用户名已注册,请重新注册!";
TextBox1.Text = "";
TextBox1.Focus();
}
else
{
Label1.Text = "恭喜您,可以注册!";
}
}
protected void Button2_Click(object sender, EventArgs e)
{

}
protected void AddBtn_Click(object sender, EventArgs e)
{
test();
if (Label1.Text == "用户名已注册,请重新注册!")
{
TextBox1.Text = "";
TextBox1.Focus();
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
TextBox5.Text = "";
TextBox6.Text = "";
}
else
{

string sql = "insert into tbluser(userName,userPwd,trueName,address,telephone,postcode,sex,userType)values('" + TextBox1.Text.Trim().ToString() + "','" + TextBox2.Text.Trim().ToString() + "','" + TextBox4.Text.Trim().ToString() + "','" + TextBox5.Text.Trim().ToString() + "','" + TextBox6.Text.Trim().ToString() + "','" + TextBox7.Text.Trim().ToString() + "','" + DropDownList1.SelectedValue + "',0)";
Class1.ExecSql(sql);
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
TextBox5.Text = "";
TextBox6.Text = "";
Response.Redirect("Index.aspx");
}
}
protected void ReturnBtn_Click(object sender, EventArgs e)
{
TextBox1.Text = "";
TextBox1.Focus();
TextBox2.Text = "";
TextBox3.Text = "";
TextBox4.Text = "";
TextBox5.Text = "";
TextBox6.Text = "";
}
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text!="")
{
test();
}
else
{
Response.Write("<script>alert('格式不正确,请重新输入用户名!');</script>");
}

}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
RequiredFieldValidator1.Visible = false;
Label1.Visible = false;
}
protected void TextBox2_TextChanged(object sender, EventArgs e)
{
RequiredFieldValidator2.Visible = false;

}
protected void TextBox3_TextChanged(object sender, EventArgs e)
{
RequiredFieldValidator3.Visible = false;
}
protected void TextBox4_TextChanged(object sender, EventArgs e)
{
RequiredFieldValidator4.Visible = false;
}
protected void TextBox5_TextChanged(object sender, EventArgs e)
{
RequiredFieldValidator5.Visible = false;
}
protected void TextBox6_TextChanged(object sender, EventArgs e)
{
RequiredFieldValidator6.Visible = false;
}
protected void TextBox7_TextChanged(object sender, EventArgs e)
{
RequiredFieldValidator7.Visible = false;
}
}
第4个回答  2008-01-03
1.在面板里拖一个TextBox 并且将其属性autopostback=true;
2.在属性面板里点击事件,双击TextChanged产生
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
if (TextBox1.Text != "")
{
SqlConnection conn = new SqlConnection("server=(local);database=db_doc;uid=sa;pwd=sa;");
SqlCommand cmd= new SqlCommand("select count(*) from T_DOC_Staff where userName='" + TextBox1.Text + "'", conn);
conn.Open();
int i=Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
if (i > 0)
{
Response.Write("<script>alert('exist the same UserName');</script>");
}
else
{
Response.Write("<script>alert('this UserName not login');</script>");
}
}
}
相似回答