2

C#のプログラミングコースの最後の部分としてプロジェクトタスクを実行し、DVDムービーコレクションの情報を格納するためのメディアライブラリを実行することを選択しました。アドバイスが必要なのは、この情報を保存する方法についてです。これは、以前より優れていたデータベースではなく、単純なテキストファイルを使用してタスクを解決する必要があるためです。

したがって、これは、この情報を保存して、タイトルや俳優を追加、編集、検索できるようにするための最良の方法です。また、このプログラムで使用しているアイデアのいくつかに言及するために、ジャンルごとに並べ替えることもできます。

ファイルの最後に、各映画のタイトル、年、プレイタイム、監督、actor1、actor2、actor3、genre、grade、commentを追加するだけで、情報を保存する必要がありますか?ファイルを検索できますか、それとも何らかの方法で最初にすべてを配列に読み込んでから、検索を実行し、ファイル全体を再度編集して保存する必要がありますか?

または、次のようなXMLを使用することをお勧めします。

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

XMLを使用している場合、タイトルを検索してその部分をロードまたは編集することはできますか?これらよりも優れた選択肢はありますか?

4

4 に答える 4

3

データをXMLファイルに保存できます。XMLファイルには、データベーステーブルと同様のデータを格納できます。複数のレコード、階層データなどを追加できます。LINQtoXMLを使用してデータを簡単にクエリできます。

を使用したくない場合はLINQ to XML、非常に一般的なものを使用XMLDocumentしてXMLデータを処理できます。

于 2012-05-14T13:14:56.003 に答える
3

多分あなたは低すぎるレベルでこれに近づいています。このファイルは、独自のDBをファイルとして実装するのではなく、永続性のためだけのものです。

目的のオブジェクトを実装し、それを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コレクションが1つだけ必要なため、おそらくシングルトンインスタンスとして保持します。

于 2012-05-14T13:16:03.210 に答える
1

ちなみに、これは非常に一般的な質問であり、非常に一般的な宿題の質問でもあるようです!!

私はあなたがこれのためにグーグルするべきだと思います、あなたはより良いプロジェクトのアイデアを得るでしょう。

この行に似たもの:

1. Microsoft Accessを使用したC#のシンプルなムービーデータベース
2.ムービーデータベースアプリケーションの作成
3. imdbapi

finally4.SOの同様の投稿

そして、データベースとXMLの比較に関する限り、そのようなタイプのプロジェクトが考慮されている限り、XMLに関するいくつかの長所があるため、データベースをお勧めします。

于 2012-05-14T13:20:04.817 に答える
1

@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)オプションを指定します。必要に応じて、シリアル化/逆シリアル化のプロセスを支援できます。

これがお役に立てば幸いです;

于 2012-05-14T13:46:26.693 に答える