2013-08-24 3 views
0

У меня есть проект в C#, в котором у меня есть класс (имя: sql_conClass.cs), который содержит строку подключения построитель:app.config - ссылка на класс?

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(); 

     } 
} 

Теперь, когда я создаю динамически DataSource для ReportViewer (я перехожу из Server Explorer с точным сервере таблицу, которую я использую для ReportViewer). Проект создает свое собственное подключение к этому серверу. Поэтому, когда я создаю файл .exe моего проекта, каждый из них будет содержать этот SqlConnection на этом сервере без возможности его изменения.

My ConnectionBuilder хранит в app.config. Я хотел спросить, есть ли способ вставить ссылку на этот Connectionbuilder в app.config?

ответ

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; 
    } 
+1

Изменения в дизайнерских файлы a нет, этот файл обычно восстанавливается. Фактически, app.config имеет свой собственный раздел для хранения соединений. Почему бы не использовать его? – Gonzix

Смежные вопросы