Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Linq to sql LINQ到SQL数据库服务器覆盖_Linq To Sql - Fatal编程技术网

Linq to sql LINQ到SQL数据库服务器覆盖

Linq to sql LINQ到SQL数据库服务器覆盖,linq-to-sql,Linq To Sql,编写VB.NETWindows应用程序 我们有一个由3台SQL服务器组成的局域网,每台服务器上都有相同的数据库表。 唯一的区别是适用于3个不同用户位置的数据 尝试使用LINQtoSQL,这是我的新手,因此产生了这个问题 我已经创建了一个.dbml文件并连接到其中一个服务器。然后我拖 好几张桌子。连接字符串存储在项目设置中。 然后,我又为其他服务器创建了两个连接字符串 我的问题是,我是否可以在代码中覆盖数据上下文连接以进行连接 是否基于可变条件连接到其他2台服务器 这是我到目前为止的代码,但我的“

编写VB.NETWindows应用程序

我们有一个由3台SQL服务器组成的局域网,每台服务器上都有相同的数据库表。 唯一的区别是适用于3个不同用户位置的数据

尝试使用LINQtoSQL,这是我的新手,因此产生了这个问题

我已经创建了一个.dbml文件并连接到其中一个服务器。然后我拖 好几张桌子。连接字符串存储在项目设置中。 然后,我又为其他服务器创建了两个连接字符串

我的问题是,我是否可以在代码中覆盖数据上下文连接以进行连接 是否基于可变条件连接到其他2台服务器

这是我到目前为止的代码,但我的“覆盖”似乎不起作用。当我 调试数据上下文变量是否显示设计时的原始连接

“”基于位置创建到SQL server的LINQ datacontext连接 作为新DataBaseDataContext()的公共dbContext


我找到了一个很好的解决方案,只需要几个步骤就可以完成设置,但什么都没有 困难。请记住,服务器和数据库需要相同 在模式中,但我有一个工作循环,请参见步骤5

1) 创建DBML文件并将一些表拖到其中。我的名字叫“数据库”。 现在必须对DBML的数据上下文属性执行一些操作,另外: A) 展开connection属性并清除在那里看到的任何连接字符串。 B) 将应用程序设置设置为false,以便项目不使用任何设置。 C) 从DBML中删除DBML自动创建的所有连接字符串(设置为无) (我这样做是为了确保设置文件连接没有覆盖我的运行时代码)

2) 将静态SQL server连接添加到app.config文件,如下所示

3) 这里的想法是在所有表单和应用程序中只使用一个数据上下文 类等,所以设置一个公共变量。我们想做的是 给它一个初始连接字符串,以后可以更改

4) 使用某种变量来确定服务器/数据库“覆盖”的工作方式。 我在MyProject(VB)中使用了一个名为“location”的My.settings字符串变量。这是 以启动时调用的另一种形式保存

现在执行一次“覆盖”(程序启动表单或模块),并允许它在全球各地使用

5) 我现在可以连接和访问3个不同的SQL Server,以及3个不同的数据库 使用最少的代码。现在,我的数据库几乎是相同的,但如果不是,这里有一个技巧。 我碰巧在employees表中有一个额外的字段列。我把那个拖进了厨房 DBML。只要在LINQ查询中指定要避免的列名称,就可以避免 查询“覆盖”到另一个数据库时出现异常错误

我不能把这一切归功于我。 我在这里找到了其他代码。

在这里:


有人知道怎么做吗?非常感谢。
Select Case My.Settings.Location
            Case "Bowling Green"
                dbContext.Connection.ConnectionString = My.Settings.bg_prodConnectionString

                Dim query = From emp In dbContext.employees _
                          Select emp

                For Each emp In query

                    MsgBox(emp.name.ToString())

                Next

            Case "Delphos"
                Dim DelphosContext As New DataBaseDataContext(My.Settings.delphos_prodConnectionString)
                'DelphosContext.Connection.ConnectionString = My.Settings.delphos_prodConnectionString

                Dim query = From emp In DelphosContext.employees _
                            Select emp _
                            Where emp.employee_id = "0028"
                            Order By emp.name

                For Each emp In query

                    MsgBox(emp.name.ToString())

                Next

            Case "Tiffin"

                dbContext.Connection.ConnectionString = My.Settings.tiffin_prodConnectionString

        End Select
<pre>
 <appSettings>
     <add key="BGConnectionString" value="bg_prodConnectionString"/>
     <add key="DelphosConnectionString" value="delphos_prodConnectionString"/>
     <add key="TiffinConnectionString" value="tiffin_prodConnectionString"/>
</appSettings>
<connectionStrings>
    <add name="bg_prodConnectionString" connectionString="Data Source=tmd-bg-sql;Initial Catalog=bg_prod;Persist Security Info=True;User ID=sa"
        providerName="System.Data.SqlClient" />
    <add name="delphos_prodConnectionString" connectionString="Data Source=tmd-d2-sql;Initial Catalog=delphos2_prod;Persist Security Info=True;User ID=sa"
        providerName="System.Data.SqlClient" />
    <add name="tiffin_prodConnectionString" connectionString="Data Source=tmd-tiffin-sql;Initial Catalog=tiffin_prod;Persist Security Info=True;User ID=sa"
        providerName="System.Data.SqlClient" />
</connectionStrings>
<code>
<pre>
Public dc As New DataBaseDataContext("Data Source=tmd-bg-sql;Initial Catalog=bg_prod;Persist   Security Info=True;User ID=sa")
<code>
<pre>
  ' save this first settings first before executing this code block
  Select Case My.Settings.Location
            Case "Bowling Green"
                ' Read the ConnectionStrings from the config file
                Dim ConnectionString = ConfigurationManager.ConnectionStrings(ConfigurationManager.AppSettings.Get("BGConnectionString")).ConnectionString
                dc.Connection.ConnectionString = ConnectionString

                Try

                    Dim query = From emp In dc.employees _
                       Select emp.name, emp.employee_id _
                       Order By name

                    For Each emp In query

                        MsgBox("BG")
                        Exit For
                        'MsgBox(emp.name)

                    Next

                Catch ex As Exception
                    MsgBox(ex.ToString)

                End Try

            Case "Delphos"
                ' Read the ConnectionStrings from the config file
                Dim ConnectionString = ConfigurationManager.ConnectionStrings(ConfigurationManager.AppSettings.Get("DelphosConnectionString")).ConnectionString
                dc.Connection.ConnectionString = ConnectionString

                Dim query = From emp In dc.employees _
                            Select emp.name, emp.employee_id _
                            Order By name

                For Each emp In query

                    MsgBox("Delphos")
                    Exit For

                Next

            Case "Tiffin"
                ' Read the ConnectionStrings from the config file
                Dim ConnectionString = ConfigurationManager.ConnectionStrings(ConfigurationManager.AppSettings.Get("TiffinConnectionString")).ConnectionString
                dc.Connection.ConnectionString = ConnectionString

                Dim query = From emp In dc.employees _
                           Select emp.name, emp.employee_id _
                           Order By name

                For Each emp In query

                    MsgBox("Tiffin")
                    Exit For

                Next

        End Select

' reference the dc context connection from another form or class
' instance the MDI form to get the public connection
        Dim MDI As New MDIParent

 Dim query = From emp In MDI.dc.employees _
                          Select emp.name, emp.employee_id _
                          Order By name

                For Each emp In query

                    MsgBox("Tiffin")
                    Exit For

                Next

<code>