C# C可恢复库将文本文件视为数据库表?
我想在文本文件中存储逗号或制表符分隔的值,这并不重要 我正在寻找一个可重用的库,它可以像处理sql表一样处理这个文本文件中的数据 我需要从…中选择*。。。并从其中删除ID=。。。。。。ID将是文本文件中的第一列 有没有做这种事情的代码丛项目C# C可恢复库将文本文件视为数据库表?,c#,text-files,C#,Text Files,我想在文本文件中存储逗号或制表符分隔的值,这并不重要 我正在寻找一个可重用的库,它可以像处理sql表一样处理这个文本文件中的数据 我需要从…中选择*。。。并从其中删除ID=。。。。。。ID将是文本文件中的第一列 有没有做这种事情的代码丛项目 我不需要复杂的功能,如加入或关系。我只有一个文本文件,它将成为一个数据库表。使用ODBC。有一个用于csv文件的Microsoft文本驱动程序。我认为这是可能的。我没有测试您是否可以通过ODBC进行操作,但您可以轻松地进行测试。 对于查询,您还可以使用lin
我不需要复杂的功能,如加入或关系。我只有一个文本文件,它将成为一个数据库表。使用ODBC。有一个用于csv文件的Microsoft文本驱动程序。我认为这是可能的。我没有测试您是否可以通过ODBC进行操作,但您可以轻松地进行测试。 对于查询,您还可以使用linq。使用linq到CSV 如果在这种情况下不是CSV 让您的文件每行保存一条记录。运行时的每条记录都应该读入record类型的集合[假设record是表示单个记录的自定义类]。您可以对集合执行LINQ操作并将集合写回文件。您看过库了吗?它能够将文本文件读取并解析为CLR对象。再加上LINQtoObjects之类的功能,您就拥有了所需的功能
public class Item
{
public int ID { get; set; }
public string Type { get; set; }
public string Instance { get; set; }
}
class Program
{
static void Main(string[] args)
{
string[] lines = File.ReadAllLines("database.txt");
var list = lines
.Select(l =>
{
var split = l.Split(',');
return new Item
{
ID = int.Parse(split[0]),
Type = split[1],
Instance = split[2]
};
});
Item secondItem = list.Where(item => item.ID == 2).Single();
List<Item> newList = list.ToList<Item>();
newList.RemoveAll(item => item.ID == 2);
//override database.txt with new data from "newList"
}
}
您还可以概述更高级的解决方案我还建议使用ODBC。这不会使部署复杂化,整个配置可以在连接字符串中设置,因此您不需要DSN 与schema.ini文件一起,您甚至可以设置列名和数据类型,请选中此项
:或者:我应该在问题中说,我不想使用odbc,因为这意味着额外的管理和部署麻烦。但是谢谢你的建议。@JL:如果使用ODBC,你需要部署什么?当您使用ODBC使用Access数据库文件时,是否部署了任何内容?@Hermant-这是一个事后考虑的要求,用于将内部内容存储到应用程序中,因此,我不想再创建另一个部署步骤。我正在考虑使用一个数据集,然后将其序列化为一个文本文件。伙计们,认真地说,第一个发布SQLLite作为答案的人,接受了它,从没有听说过它的20分钟到实现,这是非常出色的。是的,包括创建db structureWhoops。当你半醒半醒,手指没有帮助时,回答问题的问题。
newList.RemoveAll(item => item.ID == 2);