ADO.Net: SQLConection
От: RSolanov  
Дата: 18.01.08 12:22
Оценка:
Здравствуйте. Я хотел бы обсудить одну проблему, которая возникает при написании клиентского приложения с ADO.NET. Я думаю, что большинство, кто начинал писать приложения с использованием данной технологии сталкивался с этой проблемой. В клиентском приложении, которое подключено к БД и получает от туда данные, практически в каждом окне эти данные и отображаются. А значит необходимо постоянно указывать необходимый Connection для получения данных. Поэтому по логике, такой Connection должен быть где-то объявлен глобально. Но .NET не даёт возможности создавать глобальные переменные в рамках всего приложения. Можно если только положть это в класс настроек:

namespace AppClient.Properties {
    
    
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
        
        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
        
        public static Settings Default {
            get {
                return defaultInstance;
            }
        }
        
        [global::System.Configuration.ApplicationScopedSettingAttribute()]
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=SERVER-SQL\\SQLSERVER_PIK;Initial Catalog=PIK_Rieltor;Integrated Secur" +
            "ity=True")]
        public string PIK_RieltorConnectionString {
            get {
                return ((string)(this["PIK_RieltorConnectionString"]));
            }
        }
        public global::System.Data.SqlClient.SqlConnection Connection; 
    }
}


Но тут есть момент моего непонимания: ведь все эти настройки являются членами класса, посути указатель на объект которого значит где-то должен быть объявлен глобально. Но если посмотреть автоматически сгенерированные участки кода, то можно увидеть, что члены этого класса вызываются не из экземпляра класса, а прямо из него. Но как это? А может Connection лучше хранить не здесь, то где?
Или может я вообще неправильно к этому подхожу?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.