1

次の接続文字列を使用してxlsファイルからデータをフェッチするシナリオがあります

mCon.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;data source=" + mstrFilePath + ";Extended Properties=\"Excel 12.0;HDR=NO\";");

そして次のコード

string strSelectQuery = "Select * from [sheet1$]";    
System.Data.OleDb.OleDbCommand= new System.Data.OleDb.OleDbCommand(strSelectQuery, mCon);
DataAdapter = new System.Data.OleDb.OleDbDataAdapter(strSelectQuery, mCon);
DataAdapter.Fill(mDTable);  

このデータテーブル mDtable を gridview にバインドすると、グリッドのヘッダー行がなくなります。

しかし、データテーブル mDTable の最初の行としてヘッダー列が必要な別のグリッドビューがあります。

同じデータテーブルを使用して、ヘッダー行のないグリッドビューとヘッダー行のあるグリッドビューの両方をバインドするにはどうすればよいですか??

4

1 に答える 1

1

厳しい解決策:

DataTable.Columns[n].ColumnName を使用して、列ヘッダーに署名できます。

例 (テストされていません。コード エラーに注意してください):

int index = 0;
foreach(DataTableColumn col in DataTable.Columns)
{
  col.ColumnName = DataTable.Rows[0][index].ToString();
  index++;
}

次に、DataTable を gridview にバインドし、AutoGenerateColumn を true に設定します。

于 2013-03-19T06:16:02.513 に答える