我有文本文件,它看起來像這樣:有什麼方法可以將數據從文本文件插入數據集?
1 \t a
2 \t b
3 \t c
4 \t d
我有數據集:DataSet ZX = new DataSet();
有什麼辦法插入文本文件中值數據集?
在此先感謝
我有文本文件,它看起來像這樣:有什麼方法可以將數據從文本文件插入數據集?
1 \t a
2 \t b
3 \t c
4 \t d
我有數據集:DataSet ZX = new DataSet();
有什麼辦法插入文本文件中值數據集?
在此先感謝
您將不得不手動解析文件。也許是這樣的:
string data = System.IO.File.ReadAllText("myfile.txt");
DataRow row = null;
DataSet ds = new DataSet();
DataTable tab = new DataTable();
tab.Columns.Add("First");
tab.Columns.Add("Second");
string[] rows = data.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string r in rows)
{
string[] columns = r.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);
if (columns.Length <= tab.Columns.Count)
{
row = tab.NewRow();
for (int i = 0; i < columns.Length; i++)
row[i] = columns[i];
tab.Rows.Add(row);
}
}
ds.Tables.Add(tab);
UPDATE
如果你不知道有多少列在文本文件中,你可以修改我原來的例子爲以下(假設列的數目是恆定所有行):
// ...
string[] columns = r.Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);
if (tab.Columns.Count == 0)
{
for(int i = 0; i < columns.Length; i++)
tab.Columns.Add("Column" + (i + 1));
}
if (columns.Length <= tab.Columns.Count)
{
// ...
同時刪除初始創建的表列的:
// tab.Columns.Add("First");
// tab.Columns.Add("Second")
- 帕維
肯定有,
定義DataTable
,添加DataColumn
與你想要的數據類型,
ReadLine
文件,通過選項卡拆分值,並添加每個值作爲DataRow
通過調用NewRow
到DataTable。
有一個在MSDN一個很好的示例代碼,看一看,然後按照步驟
是,動態創建數據TABEL,請參閱this article如何對
逐行讀取文件線和將這些值添加到您的數據表中,請參閱this article如何讀取文本文件
試試這個
private DataTable GetTextToTable(string path)
{
try
{
DataTable dataTable = new DataTable
{
Columns = {
{"MyID", typeof(int)},
"MyData"
},
TableName="MyTable"
};
// Create an instance of StreamReader to read from a file.
// The using statement also closes the StreamReader.
using (StreamReader sr = new StreamReader(path))
{
String line;
// Read and display lines from the file until the end of
// the file is reached.
while ((line = sr.ReadLine()) != null)
{
string[] words = line.Split(new string[] { "\\t" }, StringSplitOptions.RemoveEmptyEntries);
dataTable.Rows.Add(words[0], words[1]);
}
}
return dataTable;
}
catch (Exception e)
{
// Let the user know what went wrong.
throw new Exception(e.Message);
}
}
這樣稱呼它
GetTextToTable(Path.Combine(Server.MapPath("."), "TextFile.txt"));
你也可以檢查出CSV File Imports in .NET
想我也添加到「volpan 「代碼如下:
String _source = System.IO.File.ReadAllText(FilePath, Encoding.GetEncoding(1253));
這是很好的添加文本文件的編碼,所以你可以讀取數據,並在我的情況下將其修改後導出到另一個文件。
感謝您的幫助,但我可以做什麼時,我不知道我的文本文件中有多少列? – Gold 2011-01-07 09:10:37