2011-07-21 45 views
0

在我的asp.net應用程序中,有兩種將CSV文件導入到gridview的選項。使用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(); 

什麼是這兩者之間的區別?使用一個優勢是否有優勢?使用的StreamReader

回答

0

: -

例如,我在csv文件的數據是這樣的。

拷貝以下數據中的記事本,並保存爲它「test.csv」,並嘗試

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

在第一行字符串數組,你會得到這樣{1,user1,India}

但是,隨着第二個問題是{2,user2,"Chennai,India"}

使用的OleDb: -

我覺得,我t最好使用OleDb。因爲,我們不需要擔心字符串操作。 而我們使用SQL WHERE條件訪問數據。

+0

在讀取excel文件時使用oledb幾乎是一樣的,這是否意味着在這種方法中,我應該在服務器上安裝Microsoft Office來讀取csv文件 – Iwalu

+0

要使用oledb讀取CSV文件,我們不需要安裝Ms Office在機器中。 –