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";
}
}
Webで検索したのはASP.NETではなくPHPに関するものだけだったので、何か提案してください
<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がそのままで ある理由がわかりません。助けてください。