int parent_id = SqlClass.GetPart_idLevel(part_id);
//
        public static int GetPart_idLevel(int part_id)
        {
            string strSql = "select part_id,parent_id,part_level from w_part_t where part_id=" + part_id + "";
            SqlDataReader dr=CommonFun.executeDataReader(strSql);
            try
            {
                while(dr.Read())
                {
                    if (Int32.Parse(dr["part_level"].ToString()) > 2)
                    {                        
                        return GetPart_idLevel(Int32.Parse(dr["parent_id"].ToString()));
                    }
                    else
                    {
                        return Int32.Parse(dr["part_id"].ToString());
                    }
                } 
            }
            finally
            {
                dr.Close();
            }        }//
    public static SqlDataReader executeDataReader(string strSQL)
    {
        SqlConnection cn = PublicClass.GetConn();
        SqlCommand cm = new SqlCommand(strSQL, cn);
        SqlDataReader dr = cm.ExecuteReader();
        return dr;
    }
错误:
Server Error in '/qiankun' Application.
--------------------------------------------------------------------------------Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: CS0161: 'SqlClass.GetPart_idLevel(int)': not all code paths return a valueSource Error: [No relevant source lines]
 Source File: f:\    Line: 28 Show Detailed Compiler Output:
E:\WINNT\system32> "E:\WINNT\Microsoft.NET\Framework\v2.0.40607\csc.exe" /t:library /utf8output /R:"E:\WINNT\assembly\GAC_MSIL\System.Web.Services\2.0.3600.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"E:\WINNT\assembly\GAC_MSIL\System.Drawing\2.0.3600.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"E:\WINNT\assembly\GAC_MSIL\System\2.0.3600.0__b77a5c561934e089\System.dll" /R:"E:\WINNT\assembly\GAC_MSIL\System.Web.Mobile\2.0.3600.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:"E:\WINNT\assembly\GAC_32\System.Data\2.0.3600.0__b77a5c561934e089\System.Data.dll" /R:"E:\WINNT\assembly\GAC_MSIL\System.Web\2.0.3600.0__b03f5f7f11d50a3a\System.Web.dll" /R:"E:\WINNT\assembly\GAC_MSIL\System.Xml\2.0.3600.0__b77a5c561934e089\System.Xml.dll" /R:"E:\WINNT\Microsoft.NET\Framework\v2.0.40607\mscorlib.dll" /R:"E:\WINNT\assembly\GAC_32\System.EnterpriseServices\2.0.3600.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /out:"e:\winnt\microsoft.net\framework\v2.0.40607\Temporary ASP.NET Files\qiankun\50776bd3\53786a7e\__codeumymnx1t.dll" /D:DEBUG /debug+ /optimize- /warnaserror /w:1 /nowarn:1659  "e:\winnt\microsoft.net\framework\v2.0.40607\Temporary ASP.NET Files\qiankun\50776bd3\53786a7e\5haxyrdr.0.cs" "e:\winnt\microsoft.net\framework\v2.0.40607\Temporary ASP.NET Files\qiankun\50776bd3\53786a7e\5haxyrdr.1.cs" "e:\winnt\microsoft.net\framework\v2.0.40607\Temporary ASP.NET Files\qiankun\50776bd3\53786a7e\5haxyrdr.2.cs"
Microsoft (R) Visual C# .NET Compiler version 8.00.40607.42
for Microsoft (R) Windows (R) .NET Framework version 2.0.40607
Copyright (C) Microsoft Corporation 2001-2003. All rights reserved.f:\(28,27): error CS0161: 'SqlClass.GetPart_idLevel(int)': not all code paths return a value 
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.40607.42; ASP.NET Version:2.0.40607.42

解决方案 »

  1.   

    public static int GetPart_idLevel(int part_id)
            {
               int i=0;
                string strSql = "select part_id,parent_id,part_level from w_part_t where part_id=" + part_id + "";
                SqlDataReader dr=CommonFun.executeDataReader(strSql);
                try
                {
                    while(dr.Read())
                    {
                        if (Int32.Parse(dr["part_level"].ToString()) > 2)
                        {                        
                            i= GetPart_idLevel(Int32.Parse(dr["parent_id"].ToString()));
                        }
                        else
                        {
                            i= Int32.Parse(dr["part_id"].ToString());
                        }
                    } 
                }
                finally
                {
                    dr.Close();
                }
    return i;
            }