62,047
社区成员
发帖
与我相关
我的任务
分享
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>
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;
}
}