Я пытаюсь инициализировать диспетчер подключений в

 public ShowVoc()
            {
                InitializeComponent();

                connectionString = ConfigurationManager.ConnectionStrings["WindowsFormsApplication1.Properties.Settings.splaceConnectionString;"].ConnectionString;
            }

Но всякий раз, когда я запускаю его, дайте мне «System.NullReferenceException»

Это код конфигурации приложения

<?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
        </configSections>
        <connectionStrings>
            <add name="WindowsFormsApplication1.Properties.Settings.splaceConnectionString"
                connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\splace.mdf;Integrated Security=True"
                providerName="System.Data.SqlClient" />
            <add name="WindowsFormsApplication1.Properties.Settings.VocConnectionString"
                connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Voc.mdf;Integrated Security=True"
                providerName="System.Data.SqlClient" />
        </connectionStrings>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
        </startup>
    </configuration>

И это детали исключения

System.NullReferenceException не обработано HResult = -2147467261
Сообщение = Ссылка на объект не установлена ​​на экземпляр объекта.
Источник = WindowsFormsApplication1 StackTrace: в WindowsFormsApplication1.ShowVoc..ctor () в C: \ Users \ user \ Documents \ Visual Studio 2015 \ Projects \ WindowsFormsApplication1 \ WindowsFormsApplication1 \ ShowVoc.cs: строка 24 в WindowsFormsApplication1.main.voc_Click_1 (отправитель объекта, EventArgs e) в C: \ Users \ user \ Documents \ Visual Studio 2015 \ Projects \ WindowsFormsApplication1 \ WindowsFormsApplication1 \ main.cs: строка 53 в System.Windows.Forms.Control.OnClick (EventArgs e) в System.Windows.Forms.Button.OnClick (EventArgs e) в System.Windows.Forms.Button.OnMouseUp (событие MouseEventArgs) в System.Windows.Forms.Control.WmMouseUp (сообщение & m, кнопка MouseButtons, щелчки Int32) в System.Windows.Forms.Control.WndProc (сообщение & m) в System.Windows.Forms.ButtonBase.WndProc (сообщение & m) в System.Windows.Forms.Button.WndProc (Сообщение & m) в System.Windows.Forms.Control.ControlNativeWindow.OnMessage (сообщение & m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc (сообщение & m) в System.Windows.Forms.NativeWindow.DebuggableCallback (IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW (MSG и сообщение) в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop (IntPtr dwComponentID, Int32 причина, Int32 pvLoopData) в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner (Int32 причина, контекст ApplicationContext) в System.Windows.Forms.Application.ThreadContext.RunMessageLoop (Int32 причина, контекст ApplicationContext) в System.Windows.Forms.Application.Run (форма mainForm) в WindowsFormsApplication1.Program.Main () в C: \ Users \ user \ Documents \ Visual Studio 2015 \ Projects \ WindowsFormsApplication1 \ WindowsFormsApplication1 \ Program.cs: строка 19 в System.AppDomain._nExecuteAssembly (сборка RuntimeAssembly, String [] args) в System.AppDomain.nExecuteAssembly (сборка RuntimeAssembly, аргументы String []) в System.Runtime.Hosting.ManifestRunner.Run (логическое значение checkAptModel) в System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly () в System.Runtime.Hosting.ApplicationActivator.CreateInstance (ActivationContext ActivationContext, String [] activateCustomData) в System.Runtime.Hosting.ApplicationActivator.CreateInstance (ActivationContext ActivationContext) в System.Activator.CreateInstance (контекст активации ActivationContext) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone () в System.Threading.ThreadHelper.ThreadStart_Context (состояние объекта) в System.Threading.ExecutionContext.RunInternal (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта, логическое значение preserveSyncCtx) в System.Threading.ExecutionContext.Run (ExecutionContext executionContext, обратного вызова ContextCallback, состояния объекта, логического preserveSyncCtx) в System.Threading.ExecutionContext.Run (контекст выполнения ExecutionContext, обратный вызов ContextCallback, состояние объекта) в System.Threading.ThreadHelper.ThreadStart () InnerException:

PS: Я уже добавил ссылку на System.configuration

0
Muawiyah 8 Сен 2016 в 16:57

3 ответа

Лучший ответ

В вашей строке подключения я вижу ненужный; в конце. Думаю, тебе это не нужно. Правильная версия должна быть:

connectionString = ConfigurationManager
    .ConnectionStrings["WindowsFormsApplication1.Properties.Settings.splaceConnectionString"]
    .ConnectionString;
0
Csaba Benko 8 Сен 2016 в 14:02

Разве это не просто опечатка в ключе строки подключения? Я вижу, что вы добавили точку с запятой в конце, которой нет в XML. Удалите, и все должно быть в порядке.

0
kiziu 8 Сен 2016 в 14:03

В будущем, пожалуйста, используйте поисковую систему Google и SO для поиска вашей проблемы, прежде чем задавать новый вопрос. System.NullReferenceException подробно объясняется повсюду. Чтобы решить вашу проблему, перейдите на

public ShowVoc()
        { string connectionString="";
            InitializeComponent();

            connectionString = ConfigurationManager.ConnectionStrings["WindowsFormsApplication1.Properties.Settings.splaceConnectionString;"].ConnectionString;
        }
0
Shannon Holsinger 8 Сен 2016 в 13:59