私のアプリケーションは、mysql データベースから datagridview にデータを読み取ります。一部のユーザーは、オフライン データベース オプションを使用したいと考えています。
ユーザーがローカルmysqlサーバーを実行する必要なく、mysqlデータベースをローカルファイル/データベースに保存する最良の方法は何ですか?
データベースには 2 つのテーブルのみが含まれます。
データベースをインストールせずにオフラインにしたいので(これが最も簡単です)、.xmlファイルに保存することをお勧めします。データベースからデータを取得するためのコードが既にあると思います。そのコードを使用して、すべてのデータをDataTable
またはカスタムクラスに保存し、この平和なコードで保存してロードします
public static void Save(string FileName, object o)
{
using (var writer = new System.IO.StreamWriter(FileName))
{
var serializer = new XmlSerializer(o.GetType());
serializer.Serialize(writer, o);
writer.Flush();
}
}
public static object Load(string FileName, Type t)
{
using (var stream = System.IO.File.OpenRead(FileName))
{
var serializer = new XmlSerializer(t);
return serializer.Deserialize(stream);
}
}
データベースを同期し、DateTimeModified などのテーブルに列を追加するたびにデータベース全体を完全に選択するのではなく、最後の同期後に変更/追加されたすべてのものを選択すると仮定します。