Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 23.07.2017
Сообщений: 14

Медленно работает приложение

05.09.2017, 11:30. Показов 5573. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Прошу помочь, приложение тормозит. Приложение консольное. Это видно по тому, как происходит закрытие по вводу любого символа ReadKey(), а именно нажимаем на любою кнопку, символ становиться виден на экране, потом проходит где-то 3 секунды и приложение закрывается.

Не могу понять в чем дело, но практически уверен что в базе данных, т.к. раньше другие приложения отрабатывали очень быстро и такого не было, а стоило начать работать с базой данных, так такие тормоза появились. Сама база данных пустая.

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
using System.Data;
using System.Data.SqlClient;
using System.Threading;
 
/*Активный клиент*/
    class Program
    {
        static void Main()
        {
            Console.Title = "Action Client";
 
 
            // Начало установки связи с локальным моим сервисом
 
            Console.WriteLine("Активный клиент запущен!");           
 
            NachProv();
 
            Console.ReadKey();
        }   
 
        public static int NachProv() // Начальная проверка на присутствие списка нод 
        {
            int a;            
            a = 0;            
            string connect = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='C:\Users\Dim\documents\visual studio 2017\Projects\ActionClient\ActionClient\DataChain.mdf';Integrated Security=True";
            string query;
 
            SqlConnection sqlcon = new SqlConnection(connect);
            SqlDataReader sqlreader;
            sqlreader = null;
 
            try
            {
                sqlcon.Open();
 
                query = "SELECT COUNT(id) FROM ListNodes";
                SqlCommand comand = new SqlCommand(query, sqlcon);
 
                sqlreader = comand.ExecuteReader();
                sqlreader.Read();
 
                if (Convert.ToInt32(sqlreader[0]) == 0)
                {
                    Console.WriteLine("");
                    Console.WriteLine("Введите список нод в своем клиенте!");
                    Console.WriteLine("Ожидание...");
                    Console.WriteLine("");                    
                }                
 
                if (sqlreader != null)
                {
                    sqlreader.Close();
                }
 
                sqlcon.Close();
                
                a = 1;                
                                
            }
            catch (Exception ex)
            {
                Console.WriteLine("");
                Console.WriteLine("Ошибка связана с базой данных! " + ex);
                Console.WriteLine("");
                a = 0;
                if (sqlreader != null)
                {
                    sqlreader.Close();
                }
                sqlcon.Close();
            }
 
            return a;
        } 
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.09.2017, 11:30
Ответы с готовыми решениями:

Datagridview медленно работает
Добрый день ребята. Долго грузятся данные в datagridview из sqlserver 2008r2 да так что форма зависает секунд на 5-7. Это печалька... ...

Очень медленно работает код!
В этом коде производится приращение значений r,g,b - по выбору(из ComboBox) public partial class LavelsRGB : Form { ...

Приложение медленно работает по непонятным причинам
Доброго времени суток! Есть одно приложение которое медленно работает: подолгу (открываются окна и закрываются окна). При этом в...

29
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
06.09.2017, 16:37
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от netBool Посмотреть сообщение
Почему завершилось?
Потому, что человек описал такой сценарий: приложение долго завершется после выполнения последней команды - Console.ReadKey(). Я предположил, что это дело рук финализатора. Больше ничего в голову не приходит.
1
0 / 0 / 0
Регистрация: 23.07.2017
Сообщений: 14
06.09.2017, 21:33  [ТС]
Подключил MySQL и переписал код

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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
using MySql.Data.MySqlClient;
 
namespace ActionClient
{
    /*Контракт*/
    [ServiceContract]
    public interface ITestService
    {
        [OperationContract]
        string[] Info(string messeng);
    }
 
    /*Активный клиент*/
    class Program
    {
        static void Main()
        {
            Console.Title = "Action Client";
 
 
            // Начало установки связи с локальным моим сервисом
 
            
 
            #region zapas  
            /*
             Random rand = new Random();
             string fraza = "Info #Block;Hash";
             int temp; 
 
             for (int i=0; i<10; i++)
            {
                string[] urlei = { "http://localhost:55555/ServerHosting", "http://localhost:55556/ServerHosting", "http://localhost:55557/ServerHosting" };          
 
                temp = rand.Next(0,3);
 
                ChannelFactory<ITestService> channelFactory = new ChannelFactory<ITestService>(new BasicHttpBinding(), new EndpointAddress(urlei[temp]));
 
                ITestService testService = channelFactory.CreateChannel();
 
                
                Console.WriteLine("Передача серверу#{0} сообщения: {1}", temp, fraza);
 
                try
                {
                    string[] otvet = testService.Info(fraza);
                    Console.WriteLine("Ответ сервера: ");
                    Console.WriteLine("#Block " + otvet[0]);
                    Console.WriteLine("Hash " + otvet[1]);
                    Console.WriteLine("");
                    Console.WriteLine("");
                }
                catch (FaultException faultEx)
                {
                    Console.WriteLine(faultEx.Message);
                }
                catch (CommunicationException)
                {
                    Console.WriteLine("Сервер не отвечает!");
                    Console.WriteLine("");
                    Console.WriteLine("");
                }
 
            }*/
 
 
            // Конец установки связи с локальным моим сервисом
            #endregion
 
            Console.WriteLine("Активный клиент запущен!");
 
            
 
            NachProv();
            
 
            Console.ReadKey();
        }   
 
        
 
        public static int NachProv() // Начальная проверка на присутствие списка нод 
        {
            int a;
            a = 0;
            string connect = "server=localhost;user=root;database=datachain;password=aaaaa6;";
            string query;
 
            MySqlConnection mysqlcon = new MySqlConnection(connect);
            
 
            try
            {
                mysqlcon.Open();
 
                query = "SELECT count(id) FROM datachain.chain limit 1";
                MySqlCommand comand = new MySqlCommand(query, mysqlcon);
 
                string ct = comand.ExecuteScalar().ToString();
                Console.WriteLine("Счетчик {0}", ct);
                int count = Convert.ToInt32(ct);
 
 
 
                if (count == 0)
                {
                    Console.WriteLine("");
                    Console.WriteLine("Введите список нод в своем клиенте!");
                    Console.WriteLine("Ожидание...");
                    Console.WriteLine("");
                }
 
               
 
                mysqlcon.Close();
 
                a = 1;
 
            }
            catch (Exception ex)
            {
                Console.WriteLine("");
                Console.WriteLine("Ошибка связана с базой данных! " + ex);
                Console.WriteLine("");
                a = 0;
                
                mysqlcon.Close();
            }
 
            return a;
        }
 
    }
}
Теперь все работает как часы и ReadKey() реагирует мгновенно. Таким образом делаю вывод, что если кто работает на Windows7 и использует последнюю версию MS Visual Studio 2017, то может появиться глюк в LocalDB при подключении к SQL серверу.

Спасибо всем за помощь и советы!

Добавлено через 15 секунд
Подключил MySQL и переписал код

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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
using MySql.Data.MySqlClient;
 
namespace ActionClient
{
    /*Контракт*/
    [ServiceContract]
    public interface ITestService
    {
        [OperationContract]
        string[] Info(string messeng);
    }
 
    /*Активный клиент*/
    class Program
    {
        static void Main()
        {
            Console.Title = "Action Client";
 
 
            // Начало установки связи с локальным моим сервисом
 
            
 
            #region zapas  
            /*
             Random rand = new Random();
             string fraza = "Info #Block;Hash";
             int temp; 
 
             for (int i=0; i<10; i++)
            {
                string[] urlei = { "http://localhost:55555/ServerHosting", "http://localhost:55556/ServerHosting", "http://localhost:55557/ServerHosting" };          
 
                temp = rand.Next(0,3);
 
                ChannelFactory<ITestService> channelFactory = new ChannelFactory<ITestService>(new BasicHttpBinding(), new EndpointAddress(urlei[temp]));
 
                ITestService testService = channelFactory.CreateChannel();
 
                
                Console.WriteLine("Передача серверу#{0} сообщения: {1}", temp, fraza);
 
                try
                {
                    string[] otvet = testService.Info(fraza);
                    Console.WriteLine("Ответ сервера: ");
                    Console.WriteLine("#Block " + otvet[0]);
                    Console.WriteLine("Hash " + otvet[1]);
                    Console.WriteLine("");
                    Console.WriteLine("");
                }
                catch (FaultException faultEx)
                {
                    Console.WriteLine(faultEx.Message);
                }
                catch (CommunicationException)
                {
                    Console.WriteLine("Сервер не отвечает!");
                    Console.WriteLine("");
                    Console.WriteLine("");
                }
 
            }*/
 
 
            // Конец установки связи с локальным моим сервисом
            #endregion
 
            Console.WriteLine("Активный клиент запущен!");
 
            
 
            NachProv();
            
 
            Console.ReadKey();
        }   
 
        
 
        public static int NachProv() // Начальная проверка на присутствие списка нод 
        {
            int a;
            a = 0;
            string connect = "server=localhost;user=root;database=datachain;password=aaaaa6;";
            string query;
 
            MySqlConnection mysqlcon = new MySqlConnection(connect);
            
 
            try
            {
                mysqlcon.Open();
 
                query = "SELECT count(id) FROM datachain.chain limit 1";
                MySqlCommand comand = new MySqlCommand(query, mysqlcon);
 
                string ct = comand.ExecuteScalar().ToString();
                Console.WriteLine("Счетчик {0}", ct);
                int count = Convert.ToInt32(ct);
 
 
 
                if (count == 0)
                {
                    Console.WriteLine("");
                    Console.WriteLine("Введите список нод в своем клиенте!");
                    Console.WriteLine("Ожидание...");
                    Console.WriteLine("");
                }
 
               
 
                mysqlcon.Close();
 
                a = 1;
 
            }
            catch (Exception ex)
            {
                Console.WriteLine("");
                Console.WriteLine("Ошибка связана с базой данных! " + ex);
                Console.WriteLine("");
                a = 0;
                
                mysqlcon.Close();
            }
 
            return a;
        }
 
    }
}
Теперь все работает как часы и ReadKey() реагирует мгновенно. Таким образом делаю вывод, что если кто работает на Windows7 и использует последнюю версию MS Visual Studio 2017, то может появиться глюк в LocalDB при подключении к SQL серверу.

Спасибо всем за помощь и советы!
0
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
07.09.2017, 08:09
imhoneer, ещё раз повторяю: Visual Studio тут не причём. Это только IDE. Если какая-то проблема и была, то она только с LocalDB в MSSQL. Да и то проблемой это назвать язык не повернётся.
0
0 / 0 / 0
Регистрация: 23.07.2017
Сообщений: 14
07.09.2017, 11:55  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
imhoneer, ещё раз повторяю: Visual Studio тут не причём. Это только IDE. Если какая-то проблема и была, то она только с LocalDB в MSSQL. Да и то проблемой это назвать язык не повернётся.
Эта проблема сохранялась и при компиляции приложения, как при дебаг компиляции, так и при релиз компиляции. И почему это язык не поворачивается назвать это проблемой, если ясно видно, что созданное приложение работает некорректно.

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

Я хоть и новичок в c#, но даже мне понятно, нельзя двигаться дальше, пока это не решено. Я решение нашел, возможно у кого-то тоже будет такая проблема и он увидит её решение здесь.

Добавлено через 15 секунд
Цитата Сообщение от Usaga Посмотреть сообщение
imhoneer, ещё раз повторяю: Visual Studio тут не причём. Это только IDE. Если какая-то проблема и была, то она только с LocalDB в MSSQL. Да и то проблемой это назвать язык не повернётся.
Эта проблема сохранялась и при компиляции приложения, как при дебаг компиляции, так и при релиз компиляции. И почему это язык не поворачивается назвать это проблемой, если ясно видно, что созданное приложение работает некорректно.

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

Я хоть и новичок в c#, но даже мне понятно, нельзя двигаться дальше, пока это не решено. Я решение нашел, возможно у кого-то тоже будет такая проблема и он увидит её решение здесь.
0
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
07.09.2017, 12:03
Цитата Сообщение от imhoneer Посмотреть сообщение
Эта проблема сохранялась и при компиляции приложения, как при дебаг компиляции, так и при релиз компиляции
Естественно. Ведь проблема в стороннем сервисе, а не в вашей программе или IDE. Вы заменили MSSQL[LocalDB] на MySQL и так же самая программа стала работать лучше.

Я это к чему: различайте, где IDE, где ваш код, а где сторонние вещи.
0
0 / 0 / 0
Регистрация: 23.07.2017
Сообщений: 14
07.09.2017, 14:46  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Я это к чему: различайте, где IDE, где ваш код, а где сторонние вещи.
Так я и писал по этому поводу, что некорректно работает LocalDB и я не знаю способа заменить LocalDB в MS Visual Studio, но с Вами полностью согласен, что это сторонний сервис.

Добавлено через 15 секунд
Цитата Сообщение от Usaga Посмотреть сообщение
Я это к чему: различайте, где IDE, где ваш код, а где сторонние вещи.
Так я и писал по этому поводу, что некорректно работает LocalDB и я не знаю способа заменить LocalDB в MS Visual Studio, но с Вами полностью согласен, что это сторонний сервис.
0
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
07.09.2017, 14:59
imhoneer, в Visual Studio ничего менять не надо. Просто ставить нужный провайдер\поставщик (provider) для выбранной вами СУБД и менять строку подключения нужным образом. Вся работа с поставщиками идёт через ADO.NET, а это один тот же интерфейс на все виды СУБД. Для LocalDB, MSSQL, MSSQL Express и MSSQL CE ничего ставить не надо, так как поставщики для этих СУБД уже встроены в .NET (производитель-то один). Для остальных решается докачкой нужных библиотек в ваш проект через NUGET.
2
0 / 0 / 0
Регистрация: 23.07.2017
Сообщений: 14
07.09.2017, 18:31  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
imhoneer, в Visual Studio ничего менять не надо. Просто ставить нужный провайдер\поставщик (provider) для выбранной вами СУБД и менять строку подключения нужным образом. Вся работа с поставщиками идёт через ADO.NET, а это один тот же интерфейс на все виды СУБД. Для LocalDB, MSSQL, MSSQL Express и MSSQL CE ничего ставить не надо, так как поставщики для этих СУБД уже встроены в .NET (производитель-то один). Для остальных решается докачкой нужных библиотек в ваш проект через NUGET.
В таком случае, скажите как бы Вы решили проблему с LocalDB для Windows7 ?

Добавлено через 15 секунд
Цитата Сообщение от Usaga Посмотреть сообщение
imhoneer, в Visual Studio ничего менять не надо. Просто ставить нужный провайдер\поставщик (provider) для выбранной вами СУБД и менять строку подключения нужным образом. Вся работа с поставщиками идёт через ADO.NET, а это один тот же интерфейс на все виды СУБД. Для LocalDB, MSSQL, MSSQL Express и MSSQL CE ничего ставить не надо, так как поставщики для этих СУБД уже встроены в .NET (производитель-то один). Для остальных решается докачкой нужных библиотек в ваш проект через NUGET.
В таком случае, скажите как бы Вы решили проблему с LocalDB для Windows7 ?
0
Эксперт .NET
 Аватар для Usaga
14811 / 9584 / 1368
Регистрация: 21.01.2016
Сообщений: 36,093
07.09.2017, 19:14
imhoneer, да элементарно: не использовал бы совсем. Причём не потому, что использование LocalDB выдаёт такой "баг", а потому, что нужно использовать нормальную СУБД, что для разработки, что для продакшена.
1
0 / 0 / 0
Регистрация: 23.07.2017
Сообщений: 14
07.09.2017, 20:18  [ТС]
Ну значит я правильно и сделал, перешел на нормальную базу данных.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.09.2017, 20:18

SPA приложение работает медленно при нескольких вкладках
Всем привет. Разрабатываю SPA приложение на ASP.NET Core Vue.js. Linux (Ubuntu), Ngnix. Использую Webpack. На данный момент...

Создание динамической галереи: при большом количестве картинок приложение работает медленно
Необходимо динамически выводить таблицу из картинок. Картинок может быть более 100 штук, соответственно появляется скролинг. Сейчас...

Медленно работает компьютер, медленно открываются страницы в интернете, тормозит Юутуб
Всем привет! Нужна ваша помощь... Когда производится первый запуск компьютера и я захожу через Mozilly Firefox в интернет, то браузер и...

Медленно прорисовывается приложение
При запуске приложения сначала появляется пустая форма а потом через секунду компоненты на ней как решить подскажите? Qt 5.12.2 +...

Граф. приложение+библиотеки+консольное приложение! Не работает программа без использования консоли. Если использую, то всё прекрасно работает.
Ребята нужна помощь,все вроде сделал, но приложение начинает зависать при запуске без использования консоли, если использую ее то все...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru