Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310

Подключение библиотек

16.03.2021, 09:34. Показов 2594. Ответов 24

Студворк — интернет-сервис помощи студентам
Добрый день! Может не верно название темы создал, но не знаю как правильно даже создать запрос для поиска ответа на мой вопрос. Простите за нубство. Суть проблемы в том, что когда подключаюсь вшитой строкой подключения
C#
1
2
3
4
5
6
public partial class MainForm : Form
    {
        SqlConnection sqlConn = new SqlConnection("Data Source=wpl36.hosting.reg.ru; Initial Catalog ********);
        DataTable dbTable = new DataTable();
        SqlDataAdapter dbAdp;
        BindingSource bs;
программа работает норм у всех.
Но когда я строку пишу в конфиге, то прописываю в программе эти строки
C#
1
connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
соответственно VS просит установить пакет
C#
1
using System.Configuration;
после этого программа запускается только из папки. А уже на других компах не запускается. Файл конфиг
XML
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
    </startup>
  <connectionStrings>
   <add name="DefaultConnection" connectionString="*************************"
Security=True"
       providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>
Инфу брал отсюда как прописывать в конфиг строку подключения https://metanit.com/sharp/adonet/2.2.php Как и что делать чтобы exe отдельно работал?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.03.2021, 09:34
Ответы с готовыми решениями:

Подключение библиотек
Помогите допилить код Пологаю что необходимо подключить библиотеки... но возникают сложности, в архиве есть какие-то dll'ки. но не всё...

Подключение своих библиотек к VS
Со временем накопились у меня различные функции, которые удобно использовать в своих проектах. Интересует как их встроить в студию дабы они...

Подключение стандартных библиотек
Здравствуйте, имеется проект-парсер pascal для Windows XP(ну нету у техникума денег на лицензию вин 7). Как обычно: пишу код,...

24
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
16.03.2021, 09:45
Цитата Сообщение от gena8208 Посмотреть сообщение
Как и что делать чтобы exe отдельно работал?
А на других машинах установлена СУБД ?
0
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
16.03.2021, 10:07  [ТС]
Цитата Сообщение от Почтальон Посмотреть сообщение
А на других машинах установлена СУБД ?
Не факт. База лежит в инете. Программой могут пользоваться все кто ее скачал из дома и подключаться к базе. Ну на моем то компе установлена. Я из папки repos запускаю и работает, а с рабочего стола уже не пашет
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
16.03.2021, 12:05
Цитата Сообщение от gena8208 Посмотреть сообщение
Я из папки repos запускаю и работает, а с рабочего стола уже не пашет
DLL зависимости и конфиг файл тоже на рабочий стол скопировали?
0
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
16.03.2021, 12:10  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
DLL зависимости и конфиг файл тоже на рабочий стол скопировали?
Честно? Нет. Я не знаю где эта DLL лежит и что ее нужно вместе с файлом таскать

Да . только что скачал в папке с прогой папка LIB оттуда скачал. И app.config
0
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
16.03.2021, 12:16  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
DLL зависимости и конфиг файл тоже на рабочий стол скопировали?
Да . только что скачал в папке с прогой папка LIB оттуда скачал. И app.config
Миниатюры
Подключение библиотек  
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
16.03.2021, 12:41
gena8208, возможно из-за прав, 10-ка любит ограничивать права рабочему столу.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
16.03.2021, 12:54
Смотрите call stack в каком месте у вас NRE.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
16.03.2021, 12:58
gena8208, нажмите "Сведения" и посмотрите где именно возникает NullReferenceException
0
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
16.03.2021, 13:52  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
gena8208, нажмите "Сведения" и посмотрите где именно возникает NullReferenceException
Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в BalancesOS.LoginForm..ctor()
в BalancesOS.MainForm.Form1_Load(Object sender, EventArgs e)
в System.Windows.Forms.Form.OnLoad(EventAr gs e)
в System.Windows.Forms.Form.OnCreateContro l()
в System.Windows.Forms.Control.CreateContr ol(Boolean fIgnoreVisible)
в System.Windows.Forms.Control.CreateContr ol()
в System.Windows.Forms.Control.WmShowWindo w(Message& m)
в System.Windows.Forms.Control.WndProc(Mes sage& m)
в System.Windows.Forms.Form.WmShowWindow(M essage& m)
в System.Windows.Forms.NativeWindow.Callba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Загруженные сборки **************
mscorlib
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3928.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
BalancesOSv2
Версия сборки: 2.0.1.0
Версия Win32: 2.0.1.0
CodeBase: file:///C:/Users/User/Desktop/BalancesOSv2.exe
----------------------------------------
System.Windows.Forms
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3928.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3928.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Data
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Core
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3928.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Configuration
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Data.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Data.resources.dll
----------------------------------------
System.Windows.Forms.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
System.Transactions
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
----------------------------------------
System.EnterpriseServices
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
----------------------------------------
mscorlib.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------

************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.

Например:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.

Только не совсем понятно где именно

Добавлено через 3 минуты
Цитата Сообщение от Почтальон Посмотреть сообщение
gena8208, возможно из-за прав, 10-ка любит ограничивать права рабочему столу.
я и на Windows Server 2008 запускал. Проблема мне кажется в этих библиотеках. Как только строка не прямая а через конфиг то не запускается. А из папки то запускается

Добавлено через 6 минут
Только сильно тапками не кидайте плиз. Вот код программы
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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.Data.SqlClient;
using System.Data.Common;
using System.Data.Sql;
using System.Configuration;
 
namespace BalancesOS
{
    public partial class LoginForm : Form
    {
        public MainForm f1;
        SqlConnection sqlConn;
        DataTable dbTable = new DataTable();
        SqlDataAdapter dbAdp;
        BindingSource bs;
        int Menuitem;
        string query;
        string Tname;
        public string Office2;
        public string user2;
        int I;
        public string kassir2;
             
 
        public LoginForm()
        {
            
            InitializeComponent();
          string conStr = ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString();
          sqlConn = new SqlConnection(conStr);
 
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            
            if (LoginBox.Text == "" || PasswordBox.Text == "")
            {
                MessageBox.Show("Зачем нажимать на кнопку, если не выбран пользователь или не введен пароль", "Авторизация", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            else
            {
                int I = 0;
                SqlCommand cmd = sqlConn.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "select logo from Employees where login = '" + LoginBox.Text + "'and password= '" + PasswordBox.Text + "'";
                dbTable = new DataTable();
                dbAdp = new SqlDataAdapter(cmd);
                Office2 = (string)cmd.ExecuteScalar();
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = "select kassir from Employees where login = '" + LoginBox.Text + "'and password= '" + PasswordBox.Text + "'";
                kassir2 = (string)cmd.ExecuteScalar();
                dbAdp.Fill(dbTable);
                I = Convert.ToInt32(dbTable.Rows.Count.ToString());
                if (I == 0)
                {
                    //Выдать ошибку
                    MessageBox.Show("Пользователь " + LoginBox.Text + " не найден или неверно указали пароль", "Авторизация", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    sqlConn.Close();
 
 
                }
                else
                {
                    MessageBox.Show("Добро пожаловать " + LoginBox.Text + "!", "Авторизация", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    user2 = LoginBox.Text;
                    Close();
 
                }
            }
        }
 
 
        private void LoginForm_Load(object sender, EventArgs e)
        {
            sqlConn.Open();
            SqlCommand cmd = sqlConn.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "Select * from Employees ORDER BY login";
            dbTable = new DataTable();
            dbAdp = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            dbAdp.Fill(ds);
            LoginBox.DataSource = ds.Tables[0];
            LoginBox.DisplayMember = "login";
        }
    }
 }
Все работает, но с прямой строкой подключения на всех компах. Если через конфиг то не пашет. только из папки
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
16.03.2021, 13:52
Проблема где-то в конструкторе класса LoginForm. Скорее всего ConfigurationManager.ConnectionStrings["DefaultConnection"] возвращает null.

C#
1
2
3
4
5
6
7
object cso = ConfigurationManager.ConnectionStrings["DefaultConnection"];
if (cso == null)
{
    MessageBox.Show("не удалось получить строку подключения к бд");
    return;
}
string conStr = cso.ToString();
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
16.03.2021, 13:54
Лучший ответ Сообщение было отмечено gena8208 как решение

Решение

gena8208, файл конфигурации вы рядом положили? Он должен называться программа.exe.config.
1
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
16.03.2021, 13:56  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
Проблема где-то в конструкторе класса LoginForm. Скорее всего ConfigurationManager.ConnectionStrings["DefaultConnection"] возвращает null.
Я понимаю что NULL но где и почему

Добавлено через 1 минуту
Цитата Сообщение от OwenGlendower Посмотреть сообщение
gena8208, файл конфигурации вы рядом положили? Он должен называться программа.exe.config.
нет я положил app.config Я не знал какой
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
16.03.2021, 13:57
Лучший ответ Сообщение было отмечено gena8208 как решение

Решение

Цитата Сообщение от gena8208 Посмотреть сообщение
И app.config
Конфиг не так должен называться. В имени конфига должно быть имя исполняемого файла.
1
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
16.03.2021, 14:06  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
gena8208, файл конфигурации вы рядом положили? Он должен называться программа.exe.config.
Это помогло. Спасибо. Его теперь всегда класть в одну папку с прогой? А если пользователь скачивает к себе на комп?
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
16.03.2021, 14:23
gena8208, для избежания подобных инцедентов, нужно использовать установщики, которые соберут ваши файлы в один установочник и при установке распакуют все что нужно для работы программы.
0
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
16.03.2021, 14:36  [ТС]
Цитата Сообщение от Почтальон Посмотреть сообщение
нужно использовать установщики
Посоветуете?
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
16.03.2021, 14:39
Цитата Сообщение от gena8208 Посмотреть сообщение
Посоветуете?
InnoSetup
1
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
16.03.2021, 14:54  [ТС]
Цитата Сообщение от Почтальон Посмотреть сообщение
gena8208, для избежания подобных инцедентов, нужно использовать установщики, которые соберут ваши файлы в один установочник и при установке распакуют все что нужно для работы программы.
Я может чего то не понимаю. В конфиг файле с ехе написана строка подключения с паролем и логином к БД. Как тогда от пользователя эту инфу скрыть?

Добавлено через 38 секунд
Цитата Сообщение от OwenGlendower Посмотреть сообщение
gena8208, файл конфигурации вы рядом положили? Он должен называться программа.exe.config.
Я может чего то не понимаю. В конфиг файле с ехе написана строка подключения с паролем и логином к БД. Как тогда от пользователя эту инфу скрыть?
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
16.03.2021, 14:56
Цитата Сообщение от gena8208 Посмотреть сообщение
Как тогда от пользователя эту инфу скрыть?
"зашить" в программу ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.03.2021, 14:56
Помогаю со студенческими работами здесь

Подключение библиотек Linq
The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?) The type or namespace...

Подключение dll Библиотек на C#
Здравствуйте всем!!! Как подключить к проекту написанному на C# dll библиотеку на C# и вызвать функцию из dll - ки? Только мне...

Подключение библиотек Microsoft.TeamFoundation
Возникла проблема с подключением стандартных библиотек: Microsoft.TeamFoundation.TestManagement.Client.dll ;...

Подключение библиотек с одноименными типами
Добрый день. В своем проекте я использую две вещи: using Accord.Imaging; и using AForge.Imaging; обычная строчка ...

Подключение и использование внешних dll-библиотек
написал метод, который получает данные с базы данных, его проверил, работает: using System; using System.Collections.Generic; using...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru