我有一个使用 ASP.NET C# 并使用 MS SQL Server 2008 的简单应用程序。我需要将所有访问者用户注册到我的站点。为此,用户必须填写表格。问题是当用户输入Desired Username字段时,我应该能够在后台检查另一个用户是否已经使用了该用户名。我将不得不触发一个 sql 选择查询来检查可用性。
目前我正在使用该TextBoxName_TextChanged
方法,但它不能实时工作。它仅适用于回发。代码如下:
protected void TextBox3_TextChanged(object sender, EventArgs e)
{
if (TextBox3.Text.Length == 0)
{
availability.Text = "";
return;
}
SqlDataAdapter adp = new SqlDataAdapter("select username from users where username='" + TextBox3.Text + "'", con);
DataSet ds = new DataSet();
adp.Fill(ds, "users");
if (ds.Tables["users"].Rows.Count > 0)
{
availability.ForeColor = System.Drawing.Color.Red;
availability.Text = "Not Available";
}
else
{
availability.ForeColor = System.Drawing.Color.White;
availability.Text = "Available";
}
}
请给我一些建议,因为我在网上搜索的都是关于 PHP,而不是 ASP.NET
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
</asp:UpdatePanel>
<table cellpadding="5" class="style1">
<tr>
<td class="style3">
<asp:Label ID="Label3" runat="server" Text="Username" ForeColor="White"></asp:Label> </td>
<td style="border:0px none #FF0000;">
<asp:TextBox ID="TextBox3" runat="server" Width="175px"
CssClass="input-control" ForeColor="Black" ontextchanged="TextBox3_TextChanged" AutoPostBack="true"></asp:TextBox></td>
</tr>
<tr>
<td class="style3"></td>
<td style="border:0px none #FF0000;">
<asp:Label ID="availability" runat="server" Width="175px" CssClass="text" Text="availability"></asp:Label></td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label4" runat="server" Text="Password" ForeColor="White"></asp:Label> </td>
<td style="border:0px none #FF0000;">
<asp:TextBox ID="TextBox4" runat="server" Width="175px" TextMode="Password" CssClass="input-control" ForeColor="Black"></asp:TextBox></td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label5" runat="server" Text="Email" ForeColor="White"></asp:Label> </td>
<td style="border:0px none #FF0000;">
<asp:TextBox ID="TextBox5" runat="server" Width="175px" CssClass="input-control" ForeColor="Black"></asp:TextBox></td>
</tr>
<tr>
<td class="style3">
<td style="width:30%; text-align: right; padding: 10px; border:none;">
<div class="button-set" data-role="button-set">
<asp:Button ID="Button2" runat="server" class="active bg-color-red" Text="Sign Up" />
</div>
</tr>
</table></asp:UpdatePanel>
更新:
按照大家的评论和回答,我已经取得了这么大的成就,但屏幕截图中显示了一个小问题: 不知道为什么还有另一个带有状态的标签,availability_status保持原样。请帮忙。