簡體   English   中英

需要一些項目建議

[英]Need some advice for project

我將做一個項目任務作為C#編程課程的最后一部分,我選擇了一個媒體庫來存儲DVD電影收藏的信息。 我需要一些建議是關於如何保存這些信息,因為任務應該通過使用簡單的文本文件而不是更好的數據庫來解決。

所以,這是保存這些信息的最佳方式,以便能夠添加,編輯和允許搜索標題和演員,並在類型之后進行排序,以提及我對此程序的一些內容。

我是否應該只保存信息,只需在文件末尾添加每個電影lika的標題,年份,播放時間,導演,演員1,演員2,演員3,流派,成績,評論? 我可以在文件中搜索,還是應該以某種方式首先將其全部讀入數組,然后進行搜索並編輯並再次保存完整文件?

或者像這樣使用XML更好:

<movie_collections>
<movie>
<title=Tron Legacy"></title>
<year=2010></year>
<playtime=120></playtime>
etc.
</movie>
</movie_collections>

如果我使用XML,我可以搜索標題並加載或編輯該部分嗎? 有比這些更好的替代品嗎?

您可以將數據存儲在XML文件中。 XML文件可以存儲類似於數據庫表的數據。 您可以添加多個記錄,分層數據等...您可以使用LINQ to XML輕松查詢數據。

如果您不想使用LINQ to XML ,您可以使用如此典型的XMLDocument來處理XML數據。

也許你的水平太低了。 該文件實際上只是為了持久而不是將您自己的數據庫實現為文件。

只需實現您所追求的對象並將其序列化為imo。

public class MovieCollections
{
    private ICollection<Movie> Movies {get; set;}
    // etc...
}

public class Movie
{
    public string Title {get; private set;}
    public int PlayTime {get; private set;}
    public DateTime ReleaseDate {get; private set;}
}

序列化MovieCollections的實例。 MovieCollections保存為Singleton實例,因為您只需要一個集合。

順便說一句,這似乎是一個非常普遍的問題和一個相當常見的作業問題!

我認為你應該谷歌這個,你會得到更好的項目的想法。

這方面有類似的東西:

1. 使用Microsoft Access的C#中的簡單電影數據庫
2. 創建電影數據庫應用程序
3. imdbapi
最后
是類似的帖子

並且就數據庫和XML之間的比較而言,我確實建議您使用數據庫,因為考慮到這種類型的項目,有幾個關於XML的專業人員。

正如@M_Affifi建議的那樣,通過駐留在內存中的對象(例如,MovieCollections類的實例和Movie類的實例)來思考您與數據的所有交互(例如排序,添加,查找,刪除,更新等),XML文件僅用於存儲對象的狀態,因此下次運行應用程序時可以使用該數據。

完成操作數據后,只需將其序列化為XML即可。 序列化只是將對象轉換為可以存儲或傳輸的格式的過程,在這種情況下將轉換為XML。 看看這個參考 ,你的序列化需求是非常基本的,所以你只需要幾行代碼。

System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(YourObject.GetType());
      x.Serialize(Console.Out, YourObject)

最后,我建議考慮一下你的應用程序邏輯。 當程序啟動時,您可能想要檢查您的Movies.xml是否存在,如果存在,然后“反序列化”它,這意味着將它從XML加載到您的對象集合。 如果XML文件不存在,則只需開始操作對象,完成后再選擇Save(Serialize)。 如果需要,我可以幫助進行序列化/反序列化過程。

希望這有用;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM