Asp.net 级联下拉列表获取错误并非所有代码返回值

Asp.net 级联下拉列表获取错误并非所有代码返回值,asp.net,Asp.net,我有两个下拉列表。我使用的是层叠式下拉菜单。我的第一个下拉菜单是在点击第一个下拉菜单中的选定数据时返回结果,它显示没有价值的记录。但对于有相关数据的选定数据,其显示方法存在错误。有人能提出什么问题吗?在sql server中,我得到了答案值。DD_问题是视图,磁带_主机是数据库中的表 网络服务:- 使用制度; 使用System.Collections.Generic; 使用System.Linq; 使用System.Web; 使用System.Web.Services; 使用系统数据; 使用Sy

我有两个下拉列表。我使用的是层叠式下拉菜单。我的第一个下拉菜单是在点击第一个下拉菜单中的选定数据时返回结果,它显示没有价值的记录。但对于有相关数据的选定数据,其显示方法存在错误。有人能提出什么问题吗?在sql server中,我得到了答案值。DD_问题是视图,磁带_主机是数据库中的表

网络服务:-

使用制度; 使用System.Collections.Generic; 使用System.Linq; 使用System.Web; 使用System.Web.Services; 使用系统数据; 使用System.Data.SqlClient; 使用系统配置; 使用System.Collections.Specialized; 使用System.Web.Script.Services; 使用AjaxControlToolkit; 使用系统诊断

/// ///TapeWebService的摘要说明 /// /// ///

[WebService(命名空间=”http://tempuri.org/")] [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]

//要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。 [System.Web.Script.Services.ScriptService]

公共类TapeWebService:System.Web.Services.WebService { SqlConnection con=newsqlconnection(ConfigurationManager.AppSettings[“kk”].ToString())

数据集ds;
发行人返回ir;
SqlCommand命令cmd;
SqlDataAdapter-sda;
公共TapeWebService()
{
//如果使用设计的组件,请取消注释以下行
//初始化组件();
}
[脚本方法]
[网络方法]
public AjaxControlToolkit.CascadingDropDownNameValue[]FillTape(字符串知识类别值,字符串类别)
{
尝试
{
con.Open();
cmd=新的SqlCommand(“从磁带主机选择id、t代码”,con);
cmd.ExecuteNonQuery();
sda=新的SqlDataAdapter(cmd);
ds=新数据集();
sda.填充(ds);
con.Close();
列表磁带=新列表();
foreach(ds.Tables[0].行中的数据行dr)
{
string TapeID=Convert.ToString(dr[“id”].ToString());
字符串TapeName=dr[“t_代码”]。ToString();
Add(新的AjaxControlToolkit.CascadingDropDownNameValue(TapeName,TapeID));
}
返回磁带。ToArray();
}
捕获(例外e)
{ 
字符串消息=e.消息;
HttpContext.Current.Response.Write(e.Message);
}
}
[脚本方法]
[网络方法]
公共AjaxControlToolkit.CascadingDropDownNameValue[]FillTapeCode(字符串知识类别值,字符串类别)
{
尝试
{
线状带;
StringDictionary Tape=AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
TapeID=Convert.ToString(磁带[“磁带”]);
con.Open();
cmd=new-SqlCommand(“从DD_问题中选择*,其中tapetype='”+TapeID+'”,con);
cmd.Parameters.AddWithValue(“id”,TapeID);
cmd.ExecuteNonQuery();
sda=新的SqlDataAdapter(cmd);
ds=新数据集();
sda.填充(ds);
con.Close();
列表代码=新列表();
foreach(ds.Tables[0].行中的数据行dr)
{
字符串TapeCodeID=Convert.ToString(dr[“id”].ToString());
字符串TapeCodeName=dr[“fill”].ToString();
Add(新的AjaxControlToolkit.CascadingDropDownNameValue(TapeCodeName,TapeCodeID));
}
返回代码.ToArray();
}
捕获(例外e)
{
字符串消息=e.消息;
HttpContext.Current.Response.Write(e.Message);
}
}
.Aspx页面:-

<asp:DropDownList ID="DdlTapeType" runat="server" Width="140px" 
                                                                        Height="22px">
                                                                    </asp:DropDownList>

                                                                   <ajaxToolkit:CascadingDropDown ID="CascadingDDtape" runat="server" Category="Tape"
                                                          TargetControlID="DdlTapeType" LoadingText="[Loading ...]"
                                                           PromptText="Please select a Tape" 
                                                ServicePath="TapeWebService.asmx" ServiceMethod="FillTape">

                                                                    </ajaxToolkit:CascadingDropDown> 

                                                                </td>
                                                                <td class="style31">
                                                                    &nbsp;<asp:DropDownList ID="DdlTapeCode" runat="server" 
                                                                        Height="22px" 
                                                                        Width="317px" >
                                                                    </asp:DropDownList>

                                                                     <ajaxToolkit:CascadingDropDown ID="CascadingDDCode" runat="server" 
                                                        TargetControlID="DdlTapeCode" LoadingText="[Loading ...]"
                                                        PromptText="Please select a Code" EmptyText="No Records" ServicePath="TapeWebService.asmx" 
                                                        ServiceMethod="FillTapeCode" Category="Code" ParentControlID="DdlTapeType">
                                                                    </ajaxToolkit:CascadingDropDown>

由于catch块中没有return语句,所以出现此错误。您只在Try{}中给出了return,在catch中也包含return

public AjaxControlToolkit.CascadingDropDownNameValue[] FillTape(string knownCategoryValues,string category)
    {
 List<AjaxControlToolkit.CascadingDropDownNameValue> Tape = new List<AjaxControlToolkit.CascadingDropDownNameValue>();
        try
        {
            con.Open();
            cmd = new SqlCommand("Select id, t_code from tape_master", con);
            cmd.ExecuteNonQuery();
            sda = new SqlDataAdapter(cmd);
            ds = new DataSet();
            sda.Fill(ds);
            con.Close();

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                string TapeID = Convert.ToString( dr["id"].ToString());
                string TapeName = dr["t_code"].ToString();
                Tape.Add(new AjaxControlToolkit.CascadingDropDownNameValue(TapeName, TapeID));
            }

        }
        catch (Exception e)
        { 

            string message = e.Message;
            HttpContext.Current.Response.Write(e.Message);
        }
return Tape.ToArray();
}
[ScriptMethod]
[WebMethod]
public AjaxControlToolkit.CascadingDropDownNameValue[] FillTapeCode(string knownCategoryValues, string category)
{
     List<AjaxControlToolkit.CascadingDropDownNameValue> Code = new List<AjaxControlToolkit.CascadingDropDownNameValue>();
    try
    {
      string TapeID;
        StringDictionary Tape = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
        TapeID = Convert.ToString(Tape["Tape"]);
        con.Open();
        cmd = new SqlCommand("Select * from DD_Issue where tapetype='" + TapeID + "'", con);
        cmd.Parameters.AddWithValue("id", TapeID);
        cmd.ExecuteNonQuery();
        sda = new SqlDataAdapter(cmd);
        ds = new DataSet();
        sda.Fill(ds);
        con.Close();

        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            string TapeCodeID = Convert.ToString(dr["id"].ToString());
            string TapeCodeName = dr["fill"].ToString();
            Code.Add(new AjaxControlToolkit.CascadingDropDownNameValue(TapeCodeName, TapeCodeID));
        }

    }
    catch(Exception e)
    {
        string message = e.Message;
        HttpContext.Current.Response.Write(e.Message);
    }
 return Code.ToArray();
}
public AjaxControlToolkit.CascadingDropDownNameValue[]FillTape(字符串知识类别值,字符串类别)
{
列表磁带=新列表();
尝试
{
con.Open();
cmd=新的SqlCommand(“从磁带主机选择id、t代码”,con);
cmd.ExecuteNonQuery();
sda=新的SqlDataAdapter(cmd);
ds=新数据集();
sda.填充(ds);
con.Close();
foreach(ds.Tables[0].行中的数据行dr)
{
string TapeID=Convert.ToString(dr[“id”].ToString());
字符串TapeName=dr[“t_代码”]。ToString();
Add(新的AjaxControlToolkit.CascadingDropDownNameValue(TapeName,TapeID));
}
}
捕获(例外e)
{ 
字符串消息=e.消息;
HttpContext.Current.Response.Write(e.Message);
}
返回磁带。ToArray();
}
[脚本方法]
[网络方法]
公共AjaxControlToolkit.CascadingDropDownNameValue[]FillTapeCode(字符串知识类别值,字符串类别)
{
列表代码=新列表();
尝试
{
线状带;
StringDictionary Tape=AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
TapeID=Convert.ToString(磁带[“磁带”]);
con.Open();
cmd=new-SqlCommand(“从DD_问题中选择*,其中tapetype='”+TapeID+'”,con);
cmd.Parameters.AddWithValue(“id”,TapeID);
cmd.ExecuteNonQuery();
sda=新的SqlDataAdapter(cmd);
ds=新数据集();
sda
public AjaxControlToolkit.CascadingDropDownNameValue[] FillTape(string knownCategoryValues,string category)
    {
 List<AjaxControlToolkit.CascadingDropDownNameValue> Tape = new List<AjaxControlToolkit.CascadingDropDownNameValue>();
        try
        {
            con.Open();
            cmd = new SqlCommand("Select id, t_code from tape_master", con);
            cmd.ExecuteNonQuery();
            sda = new SqlDataAdapter(cmd);
            ds = new DataSet();
            sda.Fill(ds);
            con.Close();

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                string TapeID = Convert.ToString( dr["id"].ToString());
                string TapeName = dr["t_code"].ToString();
                Tape.Add(new AjaxControlToolkit.CascadingDropDownNameValue(TapeName, TapeID));
            }

        }
        catch (Exception e)
        { 

            string message = e.Message;
            HttpContext.Current.Response.Write(e.Message);
        }
return Tape.ToArray();
}
[ScriptMethod]
[WebMethod]
public AjaxControlToolkit.CascadingDropDownNameValue[] FillTapeCode(string knownCategoryValues, string category)
{
     List<AjaxControlToolkit.CascadingDropDownNameValue> Code = new List<AjaxControlToolkit.CascadingDropDownNameValue>();
    try
    {
      string TapeID;
        StringDictionary Tape = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
        TapeID = Convert.ToString(Tape["Tape"]);
        con.Open();
        cmd = new SqlCommand("Select * from DD_Issue where tapetype='" + TapeID + "'", con);
        cmd.Parameters.AddWithValue("id", TapeID);
        cmd.ExecuteNonQuery();
        sda = new SqlDataAdapter(cmd);
        ds = new DataSet();
        sda.Fill(ds);
        con.Close();

        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            string TapeCodeID = Convert.ToString(dr["id"].ToString());
            string TapeCodeName = dr["fill"].ToString();
            Code.Add(new AjaxControlToolkit.CascadingDropDownNameValue(TapeCodeName, TapeCodeID));
        }

    }
    catch(Exception e)
    {
        string message = e.Message;
        HttpContext.Current.Response.Write(e.Message);
    }
 return Code.ToArray();
}