コンボボックスのデータセットを選択する際に、以前のComboBox。私はそれが第2の方法のSELECT文であると信じるように導かれてきましたが、なぜそれが機能していないのか分かりません。 "トークン行番号= 1、トークン行オフセット= 52、トークンエラー=データ]"私は、Parameter.AddWithValue、cmd.Parametersを使用しようとしました。 .Add、また値を無駄にする文字列として設定します。誰でも私にこの問題を正しく解決する方法を教えてもらえますか?ありがとうございました。次のように"トークンライン番号= 1、トークンラインオフセット= 52、トークンエラー=データ]"
データベースのセットアップがある:
都市
- CityId(PK、INT、NOT NULL)
- 名(NCHAR(20)、NULL)
- ROWGUID( UNIQUEIDENTIFIER、NOT NULL)
公園
- ParkId(PK、INT、nullでない)
- CityId(FK、INT、nullでない)
- 名(NCHAR(30)、NULL)
- ROWGUID(UNIQUEIDENTIFIER)
ここで方法は次のとおりです。
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;
}
を実際に、私は正しく、そのスペースを調整していた私のオリジナルの方法を。あなたのお勧めに続いて、私は今、このエラーを受け取ります: "DbType System.Data.DataRowViewから既知のSqlCeTypeへのマッピングが存在しません。" – PicoDeGallo
@ ZakaryDrinanもし 'DataRowView'について不平を言っているのであれば、cboCities.SelectedValueは何とかintの代わりに' DataRowView'を返しているようです。どのようにデータを 'cboCities'にバインドしていますか? – Icarus
cboCities.SelectedValueは、最初のメソッドのValueMemberであり、初期のメソッドはSELECTステートメントの2番目のメソッドバーと同じです(これが意味する場合)。 – PicoDeGallo