Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,804
1

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."

15.05.2024, 10:47. Показов 559. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть база данных. Имеется combobox который я заполняю списком из БД.
Дополнительно у меня стоит проверка что подключение с БД установлено.

Этот код у меня стоит в форме 1
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;
 
namespace 111
{
    public partial class Form1 : Form
    {
        private SqlConnection sqlConnection = null;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
 
        }
        private void запускToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.ShowDialog();
 
            sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Database001"].ConnectionString);
            sqlConnection.Open();
            if (sqlConnection.State == ConnectionState.Open)
            {
                MessageBox.Show("Соединение с базой данных установлено!");
            }
            else
            {
                MessageBox.Show("Соединение с базой данных не установлено!");
            }
        }
    }
}
Я открываю из первой формы вторую, и по нажатию на эту кнопку для открытия второй формы, у меня прописана сначала проверка соединение с БД. Но по факту у меня получается, что она осуществляется только после её закрытия! Соединение выдает ошибку, а список в combobox'е есть!
Миниатюры
System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2024, 10:47
Ответы с готовыми решениями:

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта"
Делаю изменение в отдельной форме.Использую класс public static class DataFromBase { ...

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
Пишу приложение на C# с бд sql server для курсовой работы в колледж При заполнении данных в текст...

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
Здравствуйте! В работе программы наблюдается ошибка: System.NullReferenceException: "Ссылка на...

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
Надо сделать экспорт в Ексель, если datagridview 2 столбца, то все нормально, если 3 то возникает...

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
Делал программу по ролику, там все работает, хотя все так же сделал....

12
2651 / 1909 / 357
Регистрация: 14.08.2018
Сообщений: 6,159
Записей в блоге: 4
15.05.2024, 10:50 2
Цитата Сообщение от xamelione25 Посмотреть сообщение
Но по факту у меня получается, что она осуществляется только после её закрытия!
Цитата Сообщение от xamelione25 Посмотреть сообщение
C#
1
form2.ShowDialog();
Дак модальное окно открываете же...
0
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,804
15.05.2024, 11:02  [ТС] 3
Andrey-MSK, а как надо, чтобы проверка производилась при открытии окна, на не после закрытия? И как от ошибки избавиться?
0
2651 / 1909 / 357
Регистрация: 14.08.2018
Сообщений: 6,159
Записей в блоге: 4
15.05.2024, 11:08 4
Цитата Сообщение от xamelione25 Посмотреть сообщение
а как надо, чтобы проверка производилась при открытии окна, на не после закрытия? И как от ошибки избавиться?
Вы что хотите проверить? Зачем вам второе окно? Что мешает соединение засунуть в try .. catch и выводить ошибку?
0
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,804
15.05.2024, 11:25  [ТС] 5
Andrey-MSK, Проверка большого перечня textbox на разные условия
Я уже на различные вопросы создавал темы ... вот там скрин в 8м посте

эти формы все мне нужны (там не только есть/будет вторая)... это все не просто так проверить единожды на соединение
0
Администратор
Эксперт .NET
17483 / 13716 / 5288
Регистрация: 17.03.2014
Сообщений: 28,158
Записей в блоге: 1
15.05.2024, 11:31 6
Цитата Сообщение от xamelione25 Посмотреть сообщение
И как от ошибки избавиться?
Нужно добавить в проект файл конфигурации (app.config) и добавить в него строку подключения с именем Database001
XML
1
2
3
4
5
<configuration>
    <connectionStrings>
        <add name="Database001" connectionString="строка соединения" />
    </connectionStrings>
</configuration>
1
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,804
15.05.2024, 11:41  [ТС] 7
OwenGlendower, она вроде есть (шестая строка)
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="Исполнительная_документация.Properties.Settings.Database001ConnectionString"
            connectionString="Data Source=WIN-SK7GL43LV68\TEW_SQLEXPRESS;Initial Catalog=Database001;Integrated Security=True;Pooling=False;Encrypt=False;TrustServerCertificate=False"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1" />
    </startup>
</configuration>
Миниатюры
System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."  
0
2651 / 1909 / 357
Регистрация: 14.08.2018
Сообщений: 6,159
Записей в блоге: 4
15.05.2024, 11:44 8
Цитата Сообщение от xamelione25 Посмотреть сообщение
ConnectionStrings["Database001"].ConnectionString
Цитата Сообщение от xamelione25 Посмотреть сообщение
она вроде есть (шестая строка)
А где тут вот это имя?
0
Администратор
Эксперт .NET
17483 / 13716 / 5288
Регистрация: 17.03.2014
Сообщений: 28,158
Записей в блоге: 1
15.05.2024, 11:53 9
Лучший ответ Сообщение было отмечено xamelione25 как решение

Решение

Цитата Сообщение от xamelione25 Посмотреть сообщение
она вроде есть
У неё другое имя. Причем странное какое-то. Такое ощущение что она была добавлена каким-то мастером Visual Studio. Поэтому я бы не стал менять её имя. Просто в коде используйте имя "Исполнительная_документация.Properties.Settings.Database001ConnectionString"
C#
32
            sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Исполнительная_документация.Properties.Settings.Database001ConnectionString"].ConnectionString);
1
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,804
15.05.2024, 12:12  [ТС] 10
OwenGlendower, я сделал как сказали, только у меня уведомление о соединении выскакивает после закрытия окна
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="Исполнительная_документация.Properties.Settings.Database001ConnectionString"
            connectionString="Data Source=WIN-SK7GL43LV68\TEW_SQLEXPRESS;Initial Catalog=Database001;Integrated Security=True;Pooling=False;Encrypt=False;TrustServerCertificate=False"
            providerName="System.Data.SqlClient" />
      <add name="Database001" connectionString="Data Source=WIN-SK7GL43LV68\TEW_SQLEXPRESS;Initial Catalog=Database001;Integrated Security=True;Pooling=False;Encrypt=False;TrustServerCertificate=False"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1" />
    </startup>
</configuration>
Добавлено через 11 минут
OwenGlendower,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;
 
namespace Исполнительная_документация
{
    public partial class Form1 : Form
    {
        private SqlConnection sqlConnection = null;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void сохранитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
 
        }
        private void подрядныеОрганизацииToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.ShowDialog();
            sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Исполнительная_документация.Properties.Settings.Database001ConnectionString"].ConnectionString);            sqlConnection.Open();
            if (sqlConnection.State == ConnectionState.Open)
            {
                MessageBox.Show("Соединение с базой данных установлено!");
            }
            else
            {
                MessageBox.Show("Соединение с базой данных не установлено!");
            }
        }
    }
}
Я вот так сделал, все равно все происходит после закрытия окна
0
2651 / 1909 / 357
Регистрация: 14.08.2018
Сообщений: 6,159
Записей в блоге: 4
15.05.2024, 12:12 11
Цитата Сообщение от xamelione25 Посмотреть сообщение
только у меня уведомление о соединении выскакивает после закрытия окна
Ну я же вам написал
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
модальное окно открываете же...
0
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,804
15.05.2024, 12:14  [ТС] 12
Andrey-MSK, да у меня в ранее написанных разных темах по этой программе ... все время сообщение сразу выскакивало ... а не после ... И окна все теже самые были
0
2651 / 1909 / 357
Регистрация: 14.08.2018
Сообщений: 6,159
Записей в блоге: 4
15.05.2024, 12:16 13
xamelione25, Вот это
C#
1
2
Form2 form2 = new Form2();
form2.ShowDialog();
Напишите после этого
C#
1
2
3
4
else
{
    MessageBox.Show("Соединение с базой данных не установлено!");
}
1
15.05.2024, 12:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2024, 12:16
Помогаю со студенческими работами здесь

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
Возникает ошибка при нажатии кнопки сохранить. А именно в private void Update...

Исключение не обработано.- System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
Кто знает из-за чего возникает такая проблема? + Скриншот субд таблицы и исключение ///...

System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта." comboBox1 было null
Помогите пожалуйста кто знает в чем проблема? System.NullReferenceException: &quot;Ссылка на объект не...

NullReferenceException не обработано(Ссылка на объект не указывает на экземпляр объекта)
Приложение должно сохранять значения ячеек DataGridView2 в, заранее созданный, points.xml Но 2010...

Ссылка на объект не указывает на экземпляр объекта
Всем привет, вскакивает такая ошибка Ссылка на объект не указывает на экземпляр объекта. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru