Ссылка на объект не указывает на экземпляр объекта (System.Configuration)

187
19 апреля 2018, 09:43

Ошибка

System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта. в FastFoodDemo.Program.GetConnection() в C:\Users\User\Desktop\FastFoodDemo\FastFoodDemo\Program.cs:строка 36

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Reflection;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Configuration;
using MySql.Data.MySqlClient;
namespace FastFoodDemo
{
    public class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        /// 
        [STAThread]
        public static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form2());
        }
        public static int admin = 0;
        public static string server = "null";
        public static MySqlConnection GetConnection()
        {
            MySqlConnection conn = new MySqlConnection();
            conn.ConnectionString = ConfigurationManager.ConnectionStrings["connect_admin"].ConnectionString;
            return conn;
        }
    }
}

app.config

<connectionStrings> 
  <add name="connect_admin" connectionString="Data Source=192.168.0.1;Initial Catalog=database;Persist Security Info=True;User ID=admin;Password=123"  
       providerName="MySql.Data.MySqlClient" /> 
</connectionStrings>

Как быть господа, подскажите пожалуйста) При том, что при запуске программы из VS 2017 - она работает. Но как только запускают готовый *.exe, вылетает вот такое :(

Answer 1

Ваш код падает c NullReferenceException, так как ConnectionStrings["connect_admin"] возвращает null в следствии того, что конфигурационный файл отсутствует в директории поиска.

Имя конфигурационного файла в выходной директории всегда должно соответствовать формату имя_исполняемого_файла.расширение.config и находится в той же директории, что и этот исполняемый файл. Например, исполняемому файлу program.exe должен соответствовать конфигурационный файл program.exe.config

READ ALSO
Регистрация вспомогательного метода в web.config ASP.NET MVC

Регистрация вспомогательного метода в web.config ASP.NET MVC

Проблема очень простаяСоздал вспомогательный метод в отдельном классе

167
Какой List оптимальнее?

Какой List оптимальнее?

Всем приветЧто быстрее и оптимальнее? Один большой List<T> (элементов так на 5000) или несколько List<T>'ов поменьше (на 500,1000 элементов и т

153