我的文本文件如下所示:
1 \t a
2 \t b
3 \t c
4 \t d
我有数据集:DataSet ZX = new DataSet();
有没有办法将文本文件值插入此数据集?
提前致谢
答案 0 :(得分:2)
当然有,
定义DataTable
,添加DataColumn
,其中包含您想要的数据类型
ReadLine
文件,按标签拆分值,并通过调用DataRow
将每个值添加为NewRow
到DataTable。
MSDN有一个不错的示例代码,请查看并按照步骤
答案 1 :(得分:2)
您必须手动解析文件。也许是这样的:
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);
<强>更新强>
如果您不知道文本文件中有多少列,您可以修改我的原始示例,如下所示(假设所有行的列数都是常量):
// ...
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")
- 帕维尔
答案 2 :(得分:1)
是的,动态创建数据表,请参阅this article了解操作方法
逐行阅读您的文件并将这些值添加到您的数据表中,请参阅this article了解如何阅读文本文件
答案 3 :(得分:0)
试试这个
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
答案 4 :(得分:0)
我还想在“volpan”代码中添加以下内容:
String _source = System.IO.File.ReadAllText(FilePath, Encoding.GetEncoding(1253));
最好添加文本文件的编码,以便能够读取数据,在我的情况下,将修改后的数据导出到另一个文件。