我在MSDN论坛上发现了一个由Kevin Gadd创建的Xbox 360的SQLite实现,但是他们使用的是谷歌C#-SQLite实现DLL。我只是想知道API是如何工作的,因为他们将它移植到c#的原始网站:http://code.google.com/p/csharp-sqlite/没有列出他们如何更改API,但它确实说明了大多数基本命令或至少来自一些评论/描述就是我得到的。
上面的DLL确实适用于Xbox 360 XNA,因为我尝试过。 我的主要目标是让我更容易看到我的目标:
如果可以的话你可以忽略其他一切,只做上面的3件事,但如果我能做#1 +#2(基本的SQLite技能),我会找到其他人来帮助我#3,因为使用率大部分是这场战斗然后我可以让别人来帮助我完成剩下的工作。
我担心学习如何使用SQLite进行c#,当有人在代码编程和限制时,有人转发SQl Server和SQLite之间的差异我应该担心的是我唯一的大问题。 编辑:jsut希望做1 + 2并休息我不在乎。
答案 0 :(得分:0)
我不确定Xbox 360是否真的支持SQLite。我不认为你甚至应该在Windows以外的任何东西上使用SQL进行XNA游戏项目。他们为此提供内置的内存管理和XML解析器。
至于如何附加到SQLite数据库,您需要将SQLite DLL包含在项目引用中。
之后,将以下内容添加到using语句中。
using System.Data;
using System.Data.SQLite;
using System.IO;
要链接到您的数据库并查询数据/发出SQL命令,请使用以下命令。
SQLiteConnection sqlCon = new SQLiteConnection("Data Source=<pathtodbfile>;Version=3;New=True;Compress=False;");
sqlCon.Open();
SQLiteCommand cmd = sqlCon.CreateCommand();
SQLiteDataAdapter db = new SQLiteDataAdapter("<your SQL Query Here>", sqlCon);
DataSet ds = new DataSet();
ds.Reset();
db.Fill(ds);
然后你可以通过它访问它加载的数据。
ds.Tables[0];
&lt; - 您的数据集可以存储许多表,但对于查询,它会将您查询的数据表加载到第一个索引中。这就是我做ds.Reset()
的原因,因为您可能决定在某处重复使用数据集。
这将适用于Windows中的C#。如果您的所有引用和使用语句都已正确完成,那么这也适用于XNA项目。
正如我之前所说,我不确定这是否适用于Xbox 360机器。
答案 1 :(得分:0)
这里的一个大问题是你无法写入Xbox上的应用程序安装文件夹。您必须使用保存系统。您可以将sqlite db文件复制到创建时的新保存中。
我会避免长时间保持连接打开,只是用它来序列化/反序列化数据。使用普通的xml序列化可能不那么令人头痛,请参阅http://msdn.microsoft.com/en-us/library/system.xml.serialization.aspx实际上你做的事情实际上更简单。
自定义二进制格式应该更小,但这更复杂。查看内容序列化程序如何用于xml =&gt; xnb序列化。