0

我在 C# 中有项目,其中有包含连接字符串生成器的类(名称:sql_conClass.cs):

 public class myConnection
{

    internal static class DataSource
    {
        private static string _ConnectionString;
        public static string ConnectionString
        {
            get
            {
                if (_ConnectionString == null)
                    _ConnectionString = FunctionToDynamicallyCreateConnectionstring();
                return _ConnectionString;
            }
        }
        private static string FunctionToDynamicallyCreateConnectionstring()
        {

                    SqlConnectionStringBuilder cb = new SqlConnectionStringBuilder();

                    cb.DataSource = Properties.Settings.Default.sql;
                    cb.InitialCatalog = Properties.Settings.Default.database;
                    cb.UserID = Properties.Settings.Default.login;
                    cb.Password = Properties.Settings.Default.pass; 
                    cb.ConnectTimeout = 120;

                     return cb.ToString();

        }
 }

现在,当我为 ReportViewer 创建动态数据源时(我从服务器资源管理器从确切的服务器移动到我用于 ReportViewer 的表)。该项目创建它自己的与该服务器的连接。因此,当我创建项目的 .exe 文件时,每个人都将包含此 SqlConnection 到此服务器,而无需更改它的选项。

我的 ConnectionBuilder 存储在 app.config 中。我想问是否有办法将这个 Connectionbuilder 的引用插入 app.config ?

4

1 回答 1

0

动态移动到 DataSet 中的每个表都会创建自己的 SqlConnection 来设置 Integrated Security = True 例如Data Source=SERVER\SQL;Initial Catalog=database;Integrated Security=True。我发现在 DataSet.Designer.cs 它创建了这行代码:

private void InitConnection() {
        this._connection = new global::System.Data.SqlClient.SqlConnection();
        this._connection.ConnectionString = global::tours.Properties.Settings.Default.toursConnectionString1;
    }

我只需要提供对类的正确引用并将其更改为:

 private void InitConnection() {
        this._connection = new global::System.Data.SqlClient.SqlConnection();
        this._connection.ConnectionString = myConnection.DataSource.ConnectionString;
    }
于 2013-08-24T05:59:44.860 回答