在connectionString c#中指定Sql Server架构

本文关键字:Sql Server 架构 connectionString | 更新日期: 2023-09-27 18:08:53

我有一个控制台应用程序,连接到Sql Server并获得一些值。我在Select(dbo)中有Schema:

        var ds = new DataTable("test");
        var connSqlRemoto = new SqlConnection("Server=myserverIP;Database=myDataBase;User Id=user;Password=pass;Integrated Security=False;Connection Timeout=60");
        connSqlRemoto.Open();
        var nombreBbdd = connSqlRemoto.Database;
        var daASqlRemoto = new SqlDataAdapter();
        var cmdSqlRemoto = new SqlCommand("SELECT * FROM " + nombreBbdd + ".dbo.myTable;", connSqlRemoto);
        cmdSqlRemoto.CommandTimeout = 1200;
        cmdSqlRemoto.Parameters.Clear();
        daASqlRemoto.SelectCommand = cmdSqlRemoto;
        daASqlRemoto.Fill(ds);

我希望Schema是动态的。是否可以在连接字符串中传递架构?像这样的东西不能工作:

 Server=myserverIP;Database=myDataBase/dbo;User Id=user;Password=pass;Integrated Security=False;Connection Timeout=60

Server=myserverIP;Database=myDataBase.otherSchema;User Id=user;Password=pass;Integrated Security=False;Connection Timeout=60

谢谢。

在connectionString c#中指定Sql Server架构

实现每个连接模式选择的最简单方法可能是将模式映射到用户,并使用正确的用户连接到数据库。这意味着他们将自动查询他们的默认模式。

No。不能传递带有连接字符串的架构。但是你可以像这样在sqlcommand中传递schema。

var schema=".dbo." -- you can set it globally or can change dynamically
cmdSqlRemoto = new SqlCommand("SELECT * FROM " + nombreBbdd + schema + "myTable;", connSqlRemoto);