Linq to Sql 发布后无法修改连接数据库字符串问题,如何解决?

Linq to Sql 发布后无法修改连接数据库字符串问题,如何解决?,第1张

在开发时,用默认生成即可. 在发布时肯定不能把连接包在dll里. 我的办法如下:

首先在UI(web/wpf)项目的config文件里加上连接字串.

<add name="EBSCConnectionString"

        connectionString="Data Source=XXXX-PCInitial Catalog=EBSCPersist Security Info=TrueUser ID=saPassword=123456Wa"

        providerName="System.Data.SqlClient" />

  </connectionStrings>

第二步,你在DAL的根目录下件一个Settings.settings.cs文件, 把DAL项目下Properties文件夹下的Setting.Designer.cs 下的内容copy到里面

第三步 改Settings.settings.cs 连接字串(如下注释掉, 加从UI config 取)

public string EBSCConnectionString

        {

            get

            {

                //return ((string)(this["EBSCConnectionString"]))

                return System.Configuration.ConfigurationManager.ConnectionStrings["EBSCConnectionString"].ConnectionString

            }

        }

4. 保存,发布即可. (客户那里就可以在 exe.config 文件里改数据库连接了)

你怎么不把关键报什么错的提示加上呢,把这段代码加上试试

try

{

Dc.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict)

}

catch (System.Data.Linq.ChangeConflictException ex)

{

foreach (System.Data.Linq.ObjectChangeConflict occ in Dc.ChangeConflicts)

{

//以下是解决冲突的三种方法,选一种即可

// 使用当前数据库中的值,覆盖Linq缓存中实体对象的值

// occ.Resolve(System.Data.Linq.RefreshMode.OverwriteCurrentValues)

// 使用Linq缓存中实体对象的值,覆盖当前数据库中的值

occ.Resolve(System.Data.Linq.RefreshMode.KeepCurrentValues)

// 只更新实体对象中改变的字段的值,其他的保留不变

// occ.Resolve(System.Data.Linq.RefreshMode.KeepChanges)

}

// 这个地方要注意,Catch方法中,我们前面只是指明了怎样来解决冲突,这个地方还需要再次提交更新,这样的话,值//才会提交到数据库。

Dc.SubmitChanges()

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9677436.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存