【发布时间】:2015-07-27 05:26:52
【问题描述】:
我在这一行遇到错误:
using (SqlDataReader reader =cmd.ExecuteReader())
我正在研究 ASP.Net 中的 AJAX 级联下拉示例,下面是我的代码。由于错误,我无法运行代码
“=”附近的语法不正确。附近使用 (SqlDataReader reader =cmd.ExecuteReader())
代码
[WebMethod]
public AjaxControlToolkit.CascadingDropDownNameValue[] GetDropDownCountry1(string knownCategoryValues)
{
// select CountryId, Country from Country where Status='Active'
// string query = "SELECT Country, CountryId FROM Country";
string query = "select [CountryName], [CountryId] from Countries";
List<AjaxControlToolkit.CascadingDropDownNameValue> countries = GetData(query);
return countries.ToArray();
}
private List<AjaxControlToolkit.CascadingDropDownNameValue> GetData(string query)
{
string conString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlCommand cmd = new SqlCommand(query);
List<AjaxControlToolkit.CascadingDropDownNameValue> values = new List<AjaxControlToolkit.CascadingDropDownNameValue>();
using (SqlConnection con = new SqlConnection(conString))
{
con.Open();
cmd.Connection = con;
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
values.Add(new AjaxControlToolkit.CascadingDropDownNameValue
{
name = reader[0].ToString(),
value = reader[1].ToString()
});
}
reader.Close();
con.Close();
return values;
}
}
}
【问题讨论】:
-
CountryId和StateId如何存储在数据库中?作为int或VARCHAR? -
我建议运行
SQL Profiler看看生成的查询有什么问题。 -
或打印您的
query并针对 sql server 运行它 -
CountryId 和 StateId 为 int 格式。 @ughai
-
将“{0}”填入国家和下一个州和城市的值将不会加载。 @ughai
标签: c# sql asp.net sql-server web-services