我正在使用C#编写应用程序,我需要一个与应用程序链接的内置数据库。我不需要编辑数据,我只需要轻松访问它。
基本上我想要它,所以我在应用程序中内置了数据,如下所示:
Book Title Book Author SomeBookTitle SomeBookAuthor SomeOtherBookTitle SomeOtherBookAuthor
有点像那样?易于访问,并且最好以某种方式与应用程序链接,因此我只有1个可执行文件。哦,可能有很多数据...
答案 0 :(得分:3)
到目前为止,我建议采用与其他方法不同的方法。
我不会使用资源文件,因为您可能不希望对资源文件中每一行的每个引用进行硬编码。 100“书籍”将意味着100个不同的资源来编码。
如果您想要自包含部署,第三方组件就会出现问题。
我的建议:将所有数据放在XML结构中,并将该XML作为一个资源放在资源文件中。
<?xml version="1.0" standalone="yes"?>
<books>
<book Author="Joe" Title="Joe's Awesome"/>
<book Author="Fred" Title="Joe's Stupid"/>
<book Author="Tim" Title="Who's Joe"/>
</books>
将其作为MyData
放入资源文件中然后你可以用:
进行迭代XDocument xd = new XDocument(XDocument.Parse(myResources.MyData));
foreach(XElement xe in xd.Elements) { // blah blah blah }
或者您可以使用LinqToXml或任意数量的替代品。
答案 1 :(得分:1)
如果您只有两个字段,则可以使用资源文件,并使用密钥作为您的书名,将值作为作者。 http://msdn.microsoft.com/en-us/library/7k989cfy(v=vs.80).aspx
您还可以添加Sql Server压缩数据库 http://msdn.microsoft.com/en-us/library/gg606540.aspx
答案 2 :(得分:0)
就数据库需求而言,像SQLite或SQL Server CE这样的嵌入式数据库应该可以解决问题。有点像......;)
答案 3 :(得分:-1)
您可以编写如下代码:
SqlDataReader rdr = null;
SqlConnection conn = new SqlConnection( /*Connection string*/ );
SqlCommand cmd = new SqlCommand("select * from Books", conn);
conn.Open();
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
string bookTitle= (string)rdr["Book Title"];
string bookAuthor = (string)rdr["Book Author"];
Console.Write("{0,-25}", bookTitle);
Console.Write("{0,-20}", bookAuthor );
Console.WriteLine();
}