C# 部署后更新

C# 部署后更新,c#,sql,.net,sql-server,localdb,C#,Sql,.net,Sql Server,Localdb,我到处都找遍了,但是没有找到一个直截了当的答案 我部署了一个WinForms C#.NET应用程序,它使用LocalDb SQL Server 2012 Express数据库。因此,数据库是项目中包含的数据文件。我想向许多表中添加一些列,由于项目部署在许多客户机上,我想向他们发送一个脚本或某种文件,一旦他们运行它,他们的数据库就会有这些更改 如何做到这一点?没有SQL Management Studio,因此用户无法登录并在其中运行脚本。我需要它基于LoalDB运行,并且不能在网上找到任何解决方

我到处都找遍了,但是没有找到一个直截了当的答案

我部署了一个WinForms C#.NET应用程序,它使用LocalDb SQL Server 2012 Express数据库。因此,数据库是项目中包含的数据文件。我想向许多表中添加一些列,由于项目部署在许多客户机上,我想向他们发送一个脚本或某种文件,一旦他们运行它,他们的数据库就会有这些更改


如何做到这一点?没有SQL Management Studio,因此用户无法登录并在其中运行脚本。我需要它基于LoalDB运行,并且不能在网上找到任何解决方案< /p> < p>我会考虑执行SQL脚本的批处理文件,比如:

sqlcmd -S <ComputerName>\<InstanceName> -i C:\Temp\ClearTables.sql
sqlcmd-S \-ic:\Temp\ClearTables.sql

这篇文章提供了一个相当好的答案。

如果您的客户端所有机器都在局域网中,那么您可以做一件事,只需在主计算机中chenge/where sql安装了更改。所有客户端PC都已自动进行更改。与用户相关的下一个问题:,可以说是重复的。如果客户端只安装了localDB,并且它是捆绑在项目中的本地数据文件,那么我如何选择该实例呢?首先,这听起来不是很好的设计。但是,如果计算机上托管有SQL server,那么您应该确保计算机名(也可以是IP地址)和实例正确。例如:sqlcmd-S“(localdb)\。\mysharedstance“sqlcmd-S”。\mysharedstance“sqlcmd-S”(localdb)\mysharedstance“sqlcmd-S”GREENHORNET\mysharedstance“sqlcmd-S”。\localdb\SH04FF8A“sqlcmd-S”GREENHORNET\localdb\SH04FF8A客户端没有实例设置,连接字符串如下所示:connectionString=“Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory |\db.mdf;Integrated Security=True”providerName=“System.Data.SqlClient”,因此由于它使用数据文件,我无法使用共享实例通过sqlcmd连接到它。如何连接数据文件?