|
遅くなりました。レスありがとうございます。
■No44746 (gtk2k さん) に返信
> コンボボックスにセットするデータを取得時にデータ型を変換すればいいと思うんだが
> SELECT CONVERT(NVARCHAR, PLACE_CODE) AS PLACE_CODE, PLACE_NAME FROM TableB
やってみましたが、やはりうまくいきません。
型の違いではないような気がします。
一応抜粋ですが、最低限の部分です。
-------------------------
private void GetDataFromDB()
{
// データをテーブルから取得する
dataAdapter.FillDataSet(ds.TableA, "Select * from テーブルA");
dataAdapter.FillDataSet(ds.TableB, "Select * from テーブルB"); // gtk2kさんのSQL文も試しましたが変わらずです。
// 各BindingSourceにDBのテーブルをアタッチする
this.mTableADataTableBindingSource.DataSource = ds.TableA;
this.mTableBDataTableBindingSource.DataSource = ds.TableB;
}
また、表示させるDataGridViewのComboBoxColumnのプロパティは
[DataPropertyName]:AreaCode(テーブルAの地域コードです)
[DataSource]:mTableBDataTableBindingSource;(テーブルBへのアタッチ用BindingSource)
[DisplayMember]:AreaName(テーブルBの地域名です。)
[ValueMember]:AreaCode(テーブルBの地域コードです)
---------------------------
あまり意味がないかも知れませんが
通常のComboBoxでも同様のテーブルを
アタッチして試してみました・・・
this.ComboBox1.SelectedValue = 1
this.ComboBox1.SelectedValue = "1"
のどちらでも"北海道"と表示されました。
今回の場合はDataGridViewなので、
SelectedValueは関係ないとは思うのですが
内部的に呼ばれていたりしないのかな・・・と。
RowsAddedイベントとかで変換してやる等
しないといけないんでしょうか。
編集後はまたDBに反映させるので、
再変換等あまりしたくはないのですが・・・。
すみませんがもう少し回答お待ちします。
|