2012-04-07 57 views
0

我在MSDN论坛上发现了一个由Kevin Gadd开始的Xbox 360的SQLite实现,但是他们是一个谷歌的C#-SQLite实现DLL,这是他使用的。我只想知道API是如何工作的,因为原来的网站把它移植到c#这里:http://code.google.com/p/csharp-sqlite/没有列出他们如何改变API,但它确实说了大部分的基本命令,或者至少从一些评论/描述中,这是什么我有。要在Xbox 360上工作的SQLite?

从上面的DLL并在Xbox 360 XNA工作,因为我尝试了。 我的主要目标,以便其更容易看到IM这个打算是:

  1. 创建在Xbox 360上一个简单的数据库2-3表作为测试(可能在Windows上,然后把数据库中的内容部分,因此它剩下的游戏部署到Xbox 360)。
  2. 在测试场景中发送数据到这些表可能使用插入或更新,但我不知道.NET中的SQLite命令,如MySQL和MS-SQL。
  3. 做垃圾回收

如果你可以无视一切,只是做了三件事情上面,但如果我能做到#1 +#2(基本SQLite的技能)我会找别人帮我与#3,因为使用将是大部分的战斗,然后我可以找人帮我休息。

林担心学习如何在代码和限制编程我应该担心的是我唯一的大问题时,使用SQLite的C#有人可以传达我的SQL Server和SQLite之间的差异。 编辑:jsut希望做1 + 2,休息我不在乎。

+0

您应该一次提出一个问题。这很容易回答。 – MPelletier 2012-04-07 12:30:29

+0

只是寻找如何在Xbox上使用sqlite与c#和xna,但iam担心垃圾回收 – jeffery 2012-04-07 12:49:49

+0

我知道sql查询,但我不知道c#命令用上面的库链接执行sql查询。 – jeffery 2012-04-11 12:28:21

回答

0

你这里的大问题是你不能写你的应用程序上的Xbox安装文件夹。你必须使用保存系统。你可以将你的sqlite数据库文件复制到一个新的创建保存中。

我会避免长时间保持连接打开,只是用它来序列化/反序列化数据。使用正常的xml序列化,你可能会少一点头痛,请参阅http://msdn.microsoft.com/en-us/library/system.xml.serialization.aspx实际上你正在尝试做什么更简单。

自定义二进制格式应该更小,但这更复杂。查看内容序列化程序如何为xml => xnb序列化工作。

+0

似乎我将不得不使用xml序列化,因为sql在xbox上不可用,不包括某人可能已经完成了数据库文件xbox上的xml,并有它的库。虽然有疑问。 – jeffery 2012-08-30 15:05:06

0

我不知道,如果在Xbox 360将真正支持的SQLite。我认为你甚至不应该在Windows以外的任何其他应用上使用SQL。它们提供内置内存管理和XML解析器。

至于如何连接到一个SQLite数据库,你需要包括你的SQLite DLL到自己的项目引用。

之后,在您的使用语句中添加以下内容。

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]; < - 您的数据集可以存储多个表,但对于查询,它会将您查询的数据表加载到第一个索引中。这就是为什么我做了ds.Reset(),因为你可能决定在某处重用数据集。

这将与Windows中的C#一起使用。如果你已经正确地完成了所有的引用和使用语句,那么这也应该在XNA项目中起作用。

正如我以前说过,虽然,我不知道是否有任何这工作的Xbox 360机器上。

+0

这些家伙似乎同意我的观点,XNA发行版中的Xbox 360不支持SQLite和其他数据库工具。 http://forums.create.msdn.com/forums/p/102116/606318.aspx – 2012-06-19 20:27:27

相关问题