我在尝试构建解决方案时遇到此错误。我已经尝试public string
而只是public
,但无法让它发挥作用。有任何想法吗?谢谢!
[WebMethod]
public static LoadCitiesByState(string state)
{
DataTable dt = SharedDataAccess.GetCities(state);
List<string> cities = new List<string>();
foreach (DataRow row in dt.Rows)
{
cities.Add(row[0].ToString());
}
return cities;
}
修改
现在我收到错误:“并非所有代码路径都返回值”
编辑II
抱歉忘了粘贴试用版&amp;抓住我在那里。我删除了它,它工作。如果有人想要展示如何让它与try&amp;抓住,感觉自由。
答案 0 :(得分:13)
您需要指定要返回的变量的类型:
public static List<string> LoadCitiesByState(string state)
无论是否抛出异常,您都需要确保返回一些内容。所以事先声明返回变量,并在 try / catch块后返回:
public static List<string> LoadCitiesByState(string state)
{
List<string> cities = new List<string>();
try {
DataTable dt = SharedDataAccess.GetCities(state);
} catch // specify exceptions here
{
//exception handling
}
foreach (DataRow row in dt.Rows)
{
cities.Add(row[0].ToString());
}
return cities;
}
一般来说,最小化try块中的行数总是一个好主意。
答案 1 :(得分:6)
您返回的城市是List<string>
,因此应该是您的返回类型。
public static List<string> LoadCitiesByState(string state)
答案 2 :(得分:4)
您的方法存在问题,您需要定义要返回的数据类型
[WebMethod]
public static List<string> LoadCitiesByState(string state)
{
DataTable dt = SharedDataAccess.GetCities(state);
List<string> cities = new List<string>();
foreach (DataRow row in dt.Rows)
{
cities.Add(row[0].ToString());
}
return cities;
}
这就是全部
<强>更新强>
如果你想添加try和catch,你可以这样做
[WebMethod]
public static List<string> LoadCitiesByState(string state)
{
List<string> cities = new List<string>();
try
{
DataTable dt = SharedDataAccess.GetCities(state);
foreach (DataRow row in dt.Rows)
{
cities.Add(row[0].ToString());
}
}
catch(Exception e)
{
//logs your exception
}
return cities;
}
答案 3 :(得分:1)
您需要指定返回类型,请尝试此
[WebMethod]
public static List<string> LoadCitiesByState(string state)
{
DataTable dt = SharedDataAccess.GetCities(state);
List<string> cities = new List<string>();
foreach (DataRow row in dt.Rows)
{
cities.Add(row[0].ToString());
}
return cities;
}