与应用程序链接的内置数据库

时间:2011-06-21 17:39:02

标签: c#

我正在使用C#编写应用程序,我需要一个与应用程序链接的内置数据库。我不需要编辑数据,我只需要轻松访问它。

基本上我想要它,所以我在应用程序中内置了数据,如下所示:

Book Title            Book Author
SomeBookTitle         SomeBookAuthor
SomeOtherBookTitle    SomeOtherBookAuthor

有点像那样?易于访问,并且最好以某种方式与应用程序链接,因此我只有1个可执行文件。哦,可能有很多数据...

4 个答案:

答案 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();
}