none
DataGridView のDataSource のTableName 取得方法 RRS feed

  • 質問

  • DataGridView のDataSource のTableName 取得方法が分かりません。

    object source = dataGridView1.DataSource;
    という方法で、データソースのDataView を取得することは出来ます。

    このsource をVisual Studio のエディタでポイントしたときに、
    Tableという項目にかっこ{}内にDataView の名前が表示されるのですが、
    このDataView の名前を取得する方法が分かりません。

    どうぞ、よろしくお願いいたします。

    環境:
    Visual Studio 2010 Pro
    .NET Framework 4.0
    Win Vista

     

    2010年10月11日 1:34

回答

  • DataSourceに格納されているオブジェクトをDataViewにキャストし、そのDataViewのTableプロパティからDataTableを取得し、TableNameプロパティを参照すればいいのではないでしょうか。
    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答としてマーク yasheeki 2010年10月11日 2:53
    2010年10月11日 1:50

すべての返信

  • DataSourceに格納されているオブジェクトをDataViewにキャストし、そのDataViewのTableプロパティからDataTableを取得し、TableNameプロパティを参照すればいいのではないでしょうか。
    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答としてマーク yasheeki 2010年10月11日 2:53
    2010年10月11日 1:50
  • ありがとうございます。

            private string GetDataGridViewSource()
            {
                DataView gridData = (DataView)dataGridView1.DataSource;
                return gridData.Table.ToString();
            }


    こんな方法で、出来ました。

    2010年10月11日 2:53
  • 少し違います。DataTableToString だけですと、ヘルプに 「TableName と DisplayExpression が連結された文字列として存在する場合は、これらを取得します。」 とあるとおり、DisplayExpression  プロパティが設定されている場合、正確なテーブル名を取得できない場合があります。テーブル名を取得する場合は、なかむらさんご指摘のように TableName プロパティを使うようにした方がいいと思います。

    private string GetDataGridViewSource()
    {
        DataView gridData = (DataView)dataGridView1.DataSource;
        return gridData.Table.TableName;
    }
    

    ひらぽん http://d.hatena.ne.jp/hilapon/
    2010年10月11日 5:32
    モデレータ