2012-04-07 58 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

相關問題