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

Posted

技术标签:

【中文标题】如何从 C# 动态运行 SQL Server CE [Windows mobile] 中的 SQL 脚本文件?【英文标题】:How to run SQL script file from SQL Server CE [Windows mobile] from c# dynamically? 【发布时间】:2012-01-06 06:05:27 【问题描述】:

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

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

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

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

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

此时我们将松开具有数据库更改的新数据库。

所以,为了解决这个问题,

我可以将一个脚本文件[包含所有新/更改列的ALTER 语句和新表的Create Table 语句] 连同CAB 文件一起传递到设备,并一一执行脚本文件吗?

我该怎么做……?

请帮我解决这个问题.....

【问题讨论】:

【参考方案1】:

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

【讨论】:

thnx 回复....如果服务器中可用,则应用程序不会下载新版本,方法是使用一些逻辑,例如检查数据库中的一些版本号。但是,如果我们将 sql 脚本文件下载到设备,我将在 Db 中将“isDBChangeExist”列设置为“True”。通过检查这个我想执行脚本文件......但是 sql server ce 不支持批量查询执行.. .所以我该怎么做.....plz 看这里:codewiz51.com/blog/post/2010/03/15/… 了解如何在 SQL Server Ce 上执行批处理脚本文件 简单来说就是用GO命令分割文件,分别运行每条语句。 如何添加脚本作为应用程序资源嵌入以从资源中检索脚本...或者我可以将 .sql 文件添加为带有 CAB 文件的资源文件...并读取并执行此文件从 c# 作为普通文件读取?? 将包含 sql 命令的文本文件作为内容添加到您的解决方案中,只需验证 sql 语法。像普通文件一样继续阅读。

以上是关于如何从 C# 动态运行 SQL Server CE [Windows mobile] 中的 SQL 脚本文件?的主要内容,如果未能解决你的问题,请参考以下文章

从 C# 代码中使用 SQL Server CE 选择 @@ IDENTITY

如何从 SQL Server CE 表中删除一行?

SQL Server CE 数据库升级 3.5 到 4.0 C#

如何在 SQL Server CE 数据库中插入多行? [关闭]

在 SQL Server CE 和 C# 中获取新插入行的主键?

SQL Server CE:到同一个数据库(C#,WPF)的多个连接(2+ 应用程序)