Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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#动态运行SQL Server CE[Windows mobile]中的SQL脚本文件?_C#_Sql Server_Deployment_Windows Mobile_Sql Server Ce - Fatal编程技术网

如何从c#动态运行SQL Server CE[Windows mobile]中的SQL脚本文件?

如何从c#动态运行SQL Server CE[Windows mobile]中的SQL脚本文件?,c#,sql-server,deployment,windows-mobile,sql-server-ce,C#,Sql Server,Deployment,Windows Mobile,Sql Server Ce,我有一个Windows mobile 6应用程序,它使用SQL Server CE 3.5。。。 因此,在将CAB安装到设备中时,它将创建一个名为TestDB.sdf的数据库 现在,当应用程序更改了一些功能并添加了一些列/删除了一些列/在SQL Server CE DB中创建了新表,并最终部署了CAB时 这次CAB文件将上传到服务器,从服务器上检查所有移动设备的新版本,并在设备上安装新版本 此时,应用程序本身将备份其本地数据库[其中包含许多有价值的数据],并安装新版本的fresh db,同时更改

我有一个Windows mobile 6应用程序,它使用SQL Server CE 3.5。。。 因此,在将CAB安装到设备中时,它将创建一个名为
TestDB.sdf
的数据库

现在,当应用程序更改了一些功能并添加了一些列/删除了一些列/在SQL Server CE DB中创建了新表,并最终部署了CAB时

这次CAB文件将上传到服务器,从服务器上检查所有移动设备的新版本,并在设备上安装新版本

此时,应用程序本身将备份其本地数据库[其中包含许多有价值的数据],并安装新版本的fresh db,同时更改所有表

安装后,应用程序本身将用之前备份的数据库替换新数据库

此时,我们将丢失具有数据库更改的新数据库

所以,为了解决这个问题

我是否可以将脚本文件[其中包含用于新建/更改列的所有
ALTER
语句和用于新建表的
Create Table
语句]连同CAB文件一起传递给设备,并逐个执行脚本文件

我该怎么做


请在这方面帮助我….

我不知道更新或安装是如何工作的,但你不能在收到sql更新文件后向数据库发出ADO.NET语句吗?

thnx以获得答复…不,应用程序可以通过使用一些逻辑(如在数据库中检查某些版本号)下载服务器中可用的新版本。但是,如果我们将sql脚本文件下载到设备上,我将在Db中将列“isDBChangeExist”设置为“True”。通过选中此项,我希望执行脚本文件…但是sql server ce不支持批查询执行…因此我如何才能做到这一点…请在此查看:要查看如何在sql server上执行批脚本文件,它只是用GO命令拆分文件,并分别运行每个语句。如何添加脚本作为应用程序资源嵌入,以从资源中检索脚本…或者我可以将.sql文件添加为带有CAB文件的资源文件…并从c中读取和执行此文件?与普通文件读取一样?添加带有sql命令的文本文件作为对于您的解决方案,只需验证sql语法即可。继续像读取普通文件一样读取它。