Hi micah,
Check this example. Now please take its reference and correct your code.
Database
For this example I have used of Northwind database that you can download using the link given below.
Download Northwind Database
HTML
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
<div class="container">
<asp:TextBox ID="txtName" runat="server" CssClass="form-control" placeholder="Insert Name"
onkeyup="ShowHidePriceTextBox()"></asp:TextBox>
<br />
<asp:TextBox ID="txtPrice" runat="server" CssClass="form-control" placeholder="Insert Price"
Style="display: none;"></asp:TextBox>
</div>
<script type="text/javascript">
function ShowHidePriceTextBox() {
PageMethods.CheckName(document.getElementById("<%=txtName.ClientID%>").value, OnSuccess);
}
function OnSuccess(response) {
document.getElementById("<%=txtPrice.ClientID%>").style.display = response;
}
</script>
Namespaces
C#
using System.Configuration;
using System.Data.SqlClient;
using System.Web.Services;
VB.Net
Imports System.Configuration
Imports System.Data.SqlClient
Imports System.Web.Services
Code
C#
[WebMethod]
public static string CheckName(string name)
{
string display = "";
string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
string query = "SELECT COUNT(ProductName) FROM Products WHERE ProductName = @Name";
using (SqlConnection con = new SqlConnection(conString))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = query;
cmd.Parameters.AddWithValue("@Name", name);
con.Open();
display = Convert.ToInt32(cmd.ExecuteScalar()) > 0 ? "block" : "none";
con.Close();
}
return display;
}
VB.Net
<WebMethod>
Public Shared Function CheckName(ByVal name As String) As String
Dim display As String = ""
Dim conString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Dim query As String = "SELECT COUNT(ProductName) FROM Products WHERE ProductName = @Name"
Using con As SqlConnection = New SqlConnection(conString)
Dim cmd As SqlCommand = New SqlCommand()
cmd.Connection = con
cmd.CommandText = query
cmd.Parameters.AddWithValue("@Name", name)
con.Open()
display = If(Convert.ToInt32(cmd.ExecuteScalar()) > 0, "block", "none")
con.Close()
End Using
Return display
End Function
Screenshot