C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DataGridViewで文字列を置き換える


(過去ログ 74 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■43064 / inTopicNo.1)  DataGridViewで文字列を置き換える
  
□投稿者/ D.A (1回)-(2009/10/28(Wed) 10:52:37)

分類:[.NET 全般] 

質問させていただきます。

DBからデータを取得し、DataSetに格納、DataGridViewにバインドさせて表示しています。

DB内データがコード化されているため、そのまま表示しても利便性が悪く、対応した文字列を表示させたいのですが、
可能でしょうか?

部署コード1→営業 といった感じに置き換えを行いたいです。

表示後にComboBoxColumnにて置き換えはできましたが、コンボボックスで表示する理由もないので、通常のTextBoxColumnではどのような処理を行えばよいのでしょうか?


引用返信 編集キー/
■43068 / inTopicNo.2)  Re[1]: DataGridViewで文字列を置き換える
□投稿者/ 魔界の仮面弁士 (1369回)-(2009/10/28(Wed) 11:13:14)
No43064 (D.A さん) に返信
> 表示後にComboBoxColumnにて置き換えはできましたが、コンボボックスで表示する理由もないので、
DataGridViewComboBoxColumn 列の DisplayStyle を変更するだけでは駄目でしょうか?


> 通常のTextBoxColumnではどのような処理を行えばよいのでしょうか?
DataSet で、社員マスタ(ShainCD, BushoCD)と部署マスタ(BushoCD, BushoName)を
リレーションし、それをバインドするという手法もあります。


// 型付き DataSet なら、下記の設定をデザイナ上で行うことができます。

DataSet ds = new DataSet();
private void Form1_Load(object sender, EventArgs e)
{
    DataTable 社員マスタ = ds.Tables.Add("社員マスタ");
    社員マスタ.Columns.Add("ShainCD");
    社員マスタ.Columns.Add("BushoCD");

    DataTable 部署マスタ = ds.Tables.Add("部署マスタ");
    部署マスタ.Columns.Add("BushoCD");
    部署マスタ.Columns.Add("BushoName");

    社員マスタ.PrimaryKey = new DataColumn[] { 社員マスタ.Columns["ShainCD"] };
    部署マスタ.PrimaryKey = new DataColumn[] { 部署マスタ.Columns["BushoCD"] };

    社員マスタ.Rows.Add("A01", "B01");
    社員マスタ.Rows.Add("A02", "B01");
    社員マスタ.Rows.Add("A03", "B02");
    社員マスタ.Rows.Add("A04", "B03");

    部署マスタ.Rows.Add("B01", "営業");
    部署マスタ.Rows.Add("B02", "総務");
    部署マスタ.Rows.Add("B03", "人事");

    ds.Relations.Add(
        部署マスタ.Columns["BushoCD"],
        社員マスタ.Columns["BushoCD"]
    );
    社員マスタ.Columns.Add("部署名").Expression = "Parent.BushoName";

    dataGridView1.AutoGenerateColumns = true;
    dataGridView1.DataSource = 社員マスタ;
}

引用返信 編集キー/
■43080 / inTopicNo.3)  Re[2]: DataGridViewで文字列を置き換える
□投稿者/ D.A (4回)-(2009/10/28(Wed) 16:13:10)
2009/10/28(Wed) 16:14:00 編集(投稿者)
2009/10/28(Wed) 16:13:56 編集(投稿者)

No43068 (魔界の仮面弁士 さん) に返信
> ■No43064 (D.A さん) に返信
>>表示後にComboBoxColumnにて置き換えはできましたが、コンボボックスで表示する理由もないので、
> DataGridViewComboBoxColumn 列の DisplayStyle を変更するだけでは駄目でしょうか?
>
>
>>通常のTextBoxColumnではどのような処理を行えばよいのでしょうか?
> DataSet で、社員マスタ(ShainCD, BushoCD)と部署マスタ(BushoCD, BushoName)を
> リレーションし、それをバインドするという手法もあります。
>
>
> // 型付き DataSet なら、下記の設定をデザイナ上で行うことができます。
>
> DataSet ds = new DataSet();
> private void Form1_Load(object sender, EventArgs e)
> {
> DataTable 社員マスタ = ds.Tables.Add("社員マスタ");
> 社員マスタ.Columns.Add("ShainCD");
> 社員マスタ.Columns.Add("BushoCD");
>
> DataTable 部署マスタ = ds.Tables.Add("部署マスタ");
> 部署マスタ.Columns.Add("BushoCD");
> 部署マスタ.Columns.Add("BushoName");
>
> 社員マスタ.PrimaryKey = new DataColumn[] { 社員マスタ.Columns["ShainCD"] };
> 部署マスタ.PrimaryKey = new DataColumn[] { 部署マスタ.Columns["BushoCD"] };
>
> 社員マスタ.Rows.Add("A01", "B01");
> 社員マスタ.Rows.Add("A02", "B01");
> 社員マスタ.Rows.Add("A03", "B02");
> 社員マスタ.Rows.Add("A04", "B03");
>
> 部署マスタ.Rows.Add("B01", "営業");
> 部署マスタ.Rows.Add("B02", "総務");
> 部署マスタ.Rows.Add("B03", "人事");
>
> ds.Relations.Add(
> 部署マスタ.Columns["BushoCD"],
> 社員マスタ.Columns["BushoCD"]
> );
> 社員マスタ.Columns.Add("部署名").Expression = "Parent.BushoName";
>
> dataGridView1.AutoGenerateColumns = true;
> dataGridView1.DataSource = 社員マスタ;
> }

ありがとうございます!DisplayStyleなんて便利なものがあったんですね。
感謝します、
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -