2009-05-28 56 views
0

我正在閱讀C#中的文本文件並嘗試將其保存到SQL數據庫。我很好,除非我不想在導入中包含第一行,即列的名稱。排除這些最簡單的方法是什麼?將文本文件保存到沒有列名的SQL數據庫

的代碼是這個

while (textIn.Peek() != -1) 
{ 
    string row = textIn.ReadLine(); 
    string[] columns = row.Split(' '); 
    Product product = new Product(); 
    product.Column1 = columns[0]; 
    etc..... 
    product.Save(); 
} 

感謝

+0

看起來你的文本文件是製表符分隔的。如果是這樣的話可以使用: row.Split(「\ t」); – Beatles1692 2009-05-29 07:04:29

回答

0

你怎麼導入數據是怎樣的?如果您在C#中循環並一次插入一個,則構建循環以跳過第一個插入!

或者只是刪除插入後的第一行。

給更多的信息,獲得更多的細節......

2

如果您正在編寫自己的代碼的讀取文件,然後導入......你爲什麼不直接跳過第一行?

0

傳遞一個標誌到程序中(以防將來第一行也是數據),導致程序跳過第一行文本。

如果它與數據庫中使用的列名相同,也可以解析它以獲取列名,而不是對它們進行硬編碼(假設這就是您當前所做的:))。

最後,如果您使用的是MySQL數據庫並且您有命令行訪問權限,您可能需要查看LOAD DATA LOCAL INFILE語法,該語法允許您導入相當任意定義的CSV數據。

1

這裏是我的建議:

string[] file_rows; 
using(var reader=File.OpenText(filepath)) 
{ 
file_rows=reader.ReadToEnd().Split("\r\n"); 
reader.Close(); 
} 

for(var i=1;i<file_rows.Length;i++) 
{ 
var row=file_rows[i]; 
var cells=row.Split("\t"); 
.... 
} 
0

以供將來參考看看這個真棒包:FileHelpers圖書館

我不能添加鏈接,只是還沒有,但谷歌應該幫助,這是在SourceForge上

當人們堅持使用文件作爲整合時,它使我們的生活變得輕鬆一點

相關問題