以前の ComboBox の選択に基づいて ComboBox のデータ セットを選択しようとしています。2 番目の方法の SELECT ステートメントであると信じるようになりましたが、なぜ機能しないのかわかりません。アプリケーションを実行すると、「クエリの解析中にエラーが発生しました。[トークン行番号 = 1、トークン行オフセット = 52、エラー中のトークン = データ]」というエラーが表示されます。 .追加し、値を文字列として設定しても無駄です。これを正しく解決する方法を教えてくれませんか?ありがとうございました。
データベースのセットアップは次のとおりです。
都市
- CityId (PK、int、null 以外)
- 名前 (nchar(20)、ヌル)
- rowguid (一意の識別子、null 以外)
公園
- ParkId (PK、int、null 以外)
- CityId (FK、int、null 以外)
- 名前 (nchar(30)、ヌル)
- 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;
}