【发布时间】:2012-04-30 19:18:59
【问题描述】:
我正在尝试根据前一个 ComboBox 的选择为 ComboBox 选择一组数据。我一直相信这是第二种方法中的 SELECT 语句,但我无法弄清楚为什么它不起作用。当我运行应用程序时,我收到此错误:“解析查询时出错。[令牌行号 = 1,令牌行偏移量 = 52,错误中的令牌 = 数据]”我尝试使用 Parameter.AddWithValue、cmd.Parameters .Add,并将值设置为字符串也无济于事。有人介意教我如何正确解决这个问题吗?谢谢。
数据库设置如下:
城市
- CityId(PK,int,非空)
- 名称 (nchar(20), null)
- rowguid(唯一标识符,非空)
公园
- ParkId(PK,int,非空)
- CityId (FK, int, not null)
- 名称 (nchar(30), null)
- rowguid(唯一标识符)
方法如下:
private void cboCities_SelectedIndexChanged(object sender, EventArgs e)
{
if (cboCities.SelectedIndex > -1)
{
SqlCeConnection cn = new SqlCeConnection(@"Data Source = \Program Files\ParkSurvey\ParkSurvey.sdf; Persist Security Info = False; Password = *");
cn.Open();
SqlCeCommand cmd = cn.CreateCommand();
cmd.CommandText = "SELECT Name FROM [Parks] WHERE CityId =" + cboCities.SelectedValue + "ORDER BY Name ASC";
SqlCeDataAdapter da = new SqlCeDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
cn.Close();
cboParks.ValueMember = "ParkId";
cboParks.DisplayMember = "Name";
cboParks.DataSource = ds.Tables[0];
cboParks.SelectedIndex = -1;
}
【问题讨论】: