2011-07-21 9 views
0

私のasp.netアプリには、CSVファイルをgridviewにインポートする2つのオプションがあります。asp.netを使用してcsvをgridviewにインポート

一つは、このようなStreamReaderです:

string rowValue; 
string[] cellValue; 

System.IO.StreamReader streamReader = new StreamReader(txtPath.Text); 

// Reading header 
rowValue = streamReader.ReadLine(); 
cellValue = rowValue.Split(',');     

for (int i = 0; i <= cellValue.Count() - 1; i++) 
{ 
    DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn(); 

    column.Name = cellValue[i]; 
    column.HeaderText = cellValue[i]; 

    dataGridView1.Columns.Add(column); 
} 

// Reading content 
while (streamReader.Peek() != -1) 
{ 
    rowValue = streamReader.ReadLine(); 
    cellValue = rowValue.Split(','); 

    dataGridView1.Rows.Add(cellValue); 
} 

streamReader.Close(); 

他はOLEDBを使用している:

string cmdString = string.Format("SELECT * FROM {0}", System.IO.Path.GetFileName(target + "\\" + FileUpload1.FileName)); 

OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmdString, connString); 

DataSet dataSet = new DataSet(); 
dataAdapter.Fill(dataSet); 

GridView1.DataSource = dataSet.Tables[0]; 
GridView1.DataBind(); 

これら2つの違いは何ですか?どちらか一方を使用する利点はありますか? StreamReaderを使用して

答えて

0

: - 例えば

を、CSVファイルの私のデータは、このようなものです。

コピーし、このメモ帳へのデータ以下と、それは「のtest.CSV」として保存し、この{1,user1,India}

のように取得する最初の行の文字列配列に

id,name,address 
1,user1,India 
2,user2,"Chennai,India" 

を試してみてください。しかし、第二の問題はありますOLEDB使用{2,user2,"Chennai,India"}

: -

を私は感じて、私はOleDbを使用するのが最適です。なぜなら、文字列の操作について心配する必要がないからです。 そして、SQL WHERE条件を使用してデータにアクセスします。

+0

ここでoledbを使うのは、Excelのファイルを読むとほとんど同じですが、この方法では私はCSVファイルを読むためにサーバにMicrosoft Officeをインストールする必要があります – Iwalu

+0

oledbを使ってCSVファイルを読むには、マシンの中で。 –

関連する問題