Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mysql数据库副本供脱机使用_C#_Mysql_Database - Fatal编程技术网

C# Mysql数据库副本供脱机使用

C# Mysql数据库副本供脱机使用,c#,mysql,database,C#,Mysql,Database,我的应用程序将数据从mysql数据库读取到datagridview,有些用户希望能够拥有脱机数据库选项 用户无需运行本地mysql服务器,将mysql数据库保存到本地文件/数据库的最佳方式是什么 该数据库仅包含2个表。既然您希望它脱机而不安装数据库(这是最简单的),我建议将其存储在.xml文件中。 我认为您已经有了一段从数据库检索数据的代码,所以只需使用该代码并将所有数据存储在DataTable或自定义类中,然后使用这种代码保存并加载它 public static void Save(strin

我的应用程序将数据从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),并选择上次同步后修改/添加的所有内容。

在同一服务器中创建另一个数据库,并创建定期运行的作业,以便通过SSI同步表…如果如果你想拥有离线功能,我认为用户必须在客户端安装mysql。或者,您使用ms access数据库、xml文件或联机时从服务器转储的东西,这些东西在脱机时可以作为数据源读取。当数据库增长时将崩溃。