C# 如何基于另一个textbox值在textbox中下拉相关数据

C# 如何基于另一个textbox值在textbox中下拉相关数据,c#,asp.net,autocompleteextender,C#,Asp.net,Autocompleteextender,在我的项目中,有一个或多个地址代码被分配给特定的客户名称。 我有一个文本框,里面有客户的名字。当我选择使用AutoCompleteXtender填充的特定客户名称时。然后我想在下一个文本框中显示与该客户名称相关的地址代码 下面是select Customer的代码,它工作正常 [System.Web.Script.Services.ScriptMethod()] [System.Web.Services.WebMethod] public static List<string> Se

在我的项目中,有一个或多个地址代码被分配给特定的客户名称。 我有一个文本框,里面有客户的名字。当我选择使用AutoCompleteXtender填充的特定客户名称时。然后我想在下一个文本框中显示与该客户名称相关的地址代码

下面是select Customer的代码,它工作正常

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> SearchCustomers(string prefixText, int count)
{
    using (SqlConnection conn = new SqlConnection())
    {
        conn.ConnectionString = dbConnection.fnConnectionString();
        using (SqlCommand cmd = new SqlCommand())
        {
            cmd.CommandText = " SELECT CustomerCode,CustomerName FROM tblCustomer where " +
            "CustomerName like @SearchText + '%'";
            cmd.Parameters.AddWithValue("@SearchText", prefixText);
            cmd.Connection = conn;
            conn.Open();
            List<string> customers = new List<string>();
            using (SqlDataReader sdr = cmd.ExecuteReader())
            {
                while (sdr.Read())
                {
                    String Code = sdr["CustomerCode"].ToString();
                    String Name = sdr["CustomerName"].ToString();
                    Name = Name + " ("+Code + ")";
                    customers.Add(Name);

                }
            }
            conn.Close();
            return customers;
        }
    }
}
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
公共静态列表SearchCustomers(字符串前缀、整数计数)
{
使用(SqlConnection conn=newsqlconnection())
{
conn.ConnectionString=dbConnection.fnConnectionString();
使用(SqlCommand cmd=new SqlCommand())
{
cmd.CommandText=“从tblCustomer where中选择CustomerCode、CustomerName”+
“类似于CustomerName的@SearchText+'%'”;
cmd.Parameters.AddWithValue(“@SearchText”,prefixText);
cmd.Connection=conn;
conn.Open();
列出客户=新列表();
使用(SqlDataReader sdr=cmd.ExecuteReader())
{
while(sdr.Read())
{
字符串代码=sdr[“CustomerCode”].ToString();
字符串名称=sdr[“CustomerName”].ToString();
名称=名称+”(“+代码+”);
客户。添加(名称);
}
}
康涅狄格州关闭();
返回客户;
}
}
}
下面是在另一个文本框中显示Addresscode的代码。该文本框不工作

 [System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> SearchAddress(string prefixText, int count)
{
    using (SqlConnection conn = new SqlConnection())
    {
        conn.ConnectionString = dbConnection.fnConnectionString();
        using (SqlCommand cmd = new SqlCommand())
        {

            cmd.CommandText = "select Addresscode from BName_Addresscode where Addresscode like '" + prefixText + "%' ";
            cmd.Parameters.AddWithValue("@SearchText", prefixText);
            cmd.Connection = conn;
            conn.Open();
            List<string> customers1 = new List<string>();
            using (SqlDataReader sdr = cmd.ExecuteReader())
            {
                while (sdr.Read())
                {
                   // String Code = sdr["City"].ToString();
                    String Name = sdr["Addresscode"].ToString();
                   // Name = Code + "(" + Name + ")";
                    customers1.Add(Name);

                }
            }
            conn.Close();
            return customers1;
        }
    }
}
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
公共静态列表搜索地址(字符串前缀文本,整数计数)
{
使用(SqlConnection conn=newsqlconnection())
{
conn.ConnectionString=dbConnection.fnConnectionString();
使用(SqlCommand cmd=new SqlCommand())
{
cmd.CommandText=“从BName_Addresscode中选择Addresscode,其中Addresscode类似于“'+prefixText+“%””;
cmd.Parameters.AddWithValue(“@SearchText”,prefixText);
cmd.Connection=conn;
conn.Open();
列表客户1=新列表();
使用(SqlDataReader sdr=cmd.ExecuteReader())
{
while(sdr.Read())
{
//字符串代码=sdr[“城市”]。ToString();
字符串名称=sdr[“Addresscode”].ToString();
//名称=代码+”(“+Name+”);
客户1.添加(姓名);
}
}
康涅狄格州关闭();
退货客户1;
}
}
}

该参数实际上不起任何作用,并且您的代码已打开以进行sql注入

您从tblCustomer中选择的第一部分是正确的

改变你以前使用的方式,它应该能正常工作

cmd.CommandText = "select Addresscode from BName_Addresscode where Addresscode like '@SearchText%' ";
cmd.Parameters.AddWithValue("@SearchText", prefixText);

您面临的问题/错误是什么?我没有得到与该CustomerName相关的Addresscode您是否尝试过像在第一个方法中那样更改查询以包含参数?因此
cmd.CommandText=“从BName_Addresscode中选择Addresscode,其中Addresscode如@SearchText+'%'”是的,我试过了,但仍然没有得到输出如果你一步一步地看代码,
sdr
有行吗?@Kalpesh前缀是什么?您是否在
String Name=sdr[“Addresscode”]中获得任何记录?@H-mikhaeljan不显示特定客户的地址代码,而是显示来自的所有地址代码database@Kalpesh如果您使用%,它将为您提供以前缀开头的结果,并且前缀后面可以有任何内容。如果必须与前缀完全匹配,则
@SearchText
不带
%