2 / 2 / 4
Регистрация: 26.09.2016
Сообщений: 108
1
MySQL

Ошибка отправки данных на MySql сервер: The connection is already open

25.09.2018, 08:57. Показов 4543. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день уважаемые программеры решил оптимизировать код изначально было 2 форы отправки 1 и 2 решил объединить в одну с использованием IF if (Convert.ToInt32((memory.sValue_location)) <= 9) а если больше if (Convert.ToInt32((memory.sValue_location)) >= 9) визуально ошибки нет при запуске пишет что сервер открыт ex.Message ---------------------------

---------------------------
The connection is already open.
---------------------------
ОК
---------------------------
помогите исправить (знаю копаться в чужом коде это ЖЖ)

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
private void Teal_Click(object sender, EventArgs e)
        {
            try
            {
                string myConnection = System.Configuration.ConfigurationManager.ConnectionStrings["myDatabaseConnection"].ConnectionString;
                using (var MyConn2 = new MySqlConnection(myConnection))
                {
                    if (Convert.ToInt32((memory.sValue_location)) <= 9)
                    {
                    save.Text = "Сохранения сессии. Подождите";
                    var MyCommand2 = new MySqlCommand("UPDATE clients SET  Tema1_1=@Tema1_1, Tema1_2=@Tema1_2, Tema1_3=@Tema1_3, Tema1_4=@Tema1_4, Tema1_5=@Tema1_5, Tema1_6=@Tema1_6, Tema1_7=@Tema1_7, Tema1_8=@Tema1_8, 1_1_d=@1_1_d,1_2_d=@1_2_d,1_3_d=@1_3_d,1_4_d=@1_4_d,1_5_d=@1_5_d,1_6_d=@1_6_d,1_7_d=@1_7_d,1_8_d=@1_8_d,location=@location WHERE id=@id", MyConn2);
                    MyCommand2.Parameters.AddWithValue("@location", memory.sValue_location);
                    MyCommand2.Parameters.AddWithValue("@id", memory.sValue_id);
                    MyCommand2.Parameters.AddWithValue("@Tema1_1", theme.sValue_them1_1);
                    MyCommand2.Parameters.AddWithValue("@Tema1_2", theme.sValue_them1_2);
                    MyCommand2.Parameters.AddWithValue("@Tema1_3", theme.sValue_them1_3);
                    MyCommand2.Parameters.AddWithValue("@Tema1_4", theme.sValue_them1_4);
                    MyCommand2.Parameters.AddWithValue("@Tema1_5", theme.sValue_them1_5);
                    MyCommand2.Parameters.AddWithValue("@Tema1_6", theme.sValue_them1_6);
                    MyCommand2.Parameters.AddWithValue("@Tema1_7", theme.sValue_them1_7);
                    MyCommand2.Parameters.AddWithValue("@Tema1_8", theme.sValue_them1_8);
                    MyCommand2.Parameters.AddWithValue("@1_1_d", theme.sValue_1_1_d);
                    MyCommand2.Parameters.AddWithValue("@1_2_d", theme.sValue_1_2_d);
                    MyCommand2.Parameters.AddWithValue("@1_3_d", theme.sValue_1_3_d);
                    MyCommand2.Parameters.AddWithValue("@1_4_d", theme.sValue_1_4_d);
                    MyCommand2.Parameters.AddWithValue("@1_5_d", theme.sValue_1_5_d);
                    MyCommand2.Parameters.AddWithValue("@1_6_d", theme.sValue_1_6_d);
                    MyCommand2.Parameters.AddWithValue("@1_7_d", theme.sValue_1_7_d);
                    MyCommand2.Parameters.AddWithValue("@1_8_d", theme.sValue_1_8_d);
                    MyConn2.Open();
                    save.Text = "Сохранения сессии. Подождите..";
                    MyCommand2.ExecuteNonQuery();
                    }
                     if (Convert.ToInt32((memory.sValue_location)) >= 9)
                    {
                    var MyCommand2 = new MySqlCommand("UPDATE clients SET  Tema2_1=@Tema2_1, Tema2_2=@Tema2_2, Tema2_3=@Tema2_3, Tema2_4=@Tema2_4, Tema2_5=@Tema2_5, 2_1_d=@2_1_d,2_2_d=@2_2_d,2_3_d=@2_3_d,2_4_d=@2_4_d,2_5_d=@2_5_d,location=@location WHERE id=@id", MyConn2);
                    MyCommand2.Parameters.AddWithValue("@location", memory.sValue_location);
                    MyCommand2.Parameters.AddWithValue("@id", memory.sValue_id);
                    MyCommand2.Parameters.AddWithValue("@Tema2_1", theme.sValue_them2_1);
                    MyCommand2.Parameters.AddWithValue("@Tema2_2", theme.sValue_them2_2);
                    MyCommand2.Parameters.AddWithValue("@Tema2_3", theme.sValue_them2_3);
                    MyCommand2.Parameters.AddWithValue("@Tema2_4", theme.sValue_them2_4);
                    MyCommand2.Parameters.AddWithValue("@Tema2_5", theme.sValue_them2_5);
 
                    MyCommand2.Parameters.AddWithValue("@2_1_d", theme.sValue_2_1_d);
                    MyCommand2.Parameters.AddWithValue("@2_2_d", theme.sValue_2_2_d);
                    MyCommand2.Parameters.AddWithValue("@2_3_d", theme.sValue_2_3_d);
                    MyCommand2.Parameters.AddWithValue("@2_4_d", theme.sValue_2_4_d);
                    MyCommand2.Parameters.AddWithValue("@2_5_d", theme.sValue_2_5_d);
 
                    MyConn2.Open();
                    save.Text = "Сохранения сессии. Подождите..";
                    MyCommand2.ExecuteNonQuery();
                    }   
                }
                save.Text = "Успешно !!! ";
                this.Close();
                Application.Exit();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
memory.sValue_location это указывается местонахождение клиента если нажимает кнопку на первой форме то значения до 9 если со второй больше 9
это я решил таким образом разгрузить запрос отправки
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2018, 08:57
Ответы с готовыми решениями:

Ошибка connection must be valid and open
Студия выдает ошибку &quot;connection must be valid and open&quot; на строке 83 com.ExecuteNonQuery();, не...

Ошибка ftp_login(): Could not initialize TLS connection in Open Server
Здравствуйте. Сделал на локальном сервере сайт и облачное хранилище. Версия php 7.0. Используя...

Как избавится от многократного употребления connection.Open(), connection.Close()?
Привет, в проекте планируется использовать dapper для организации кода и мапинга, а я так привык к...

Ошибка при отправки сообщения: connection closed gracefully
Вылетает ошибка при отправки сообщения connection closed gracefully Вот код: procedure...

1
Администратор
Эксперт .NET
16989 / 13348 / 5209
Регистрация: 17.03.2014
Сообщений: 27,296
Записей в блоге: 1
25.09.2018, 09:51 2
Лучший ответ Сообщение было отмечено Denis199 как решение

Решение

Denis199, ты текст ошибки читал? he connection is already open - соединение уже было открыто. Глядя на код нетрудно понять почему и когда это происходит.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        using (var MyConn2 = new MySqlConnection(myConnection))
        {
            if (Convert.ToInt32((memory.sValue_location)) <= 9)
            {
                ...
                MyConn2.Open();
                ...
            }
 
            if (Convert.ToInt32((memory.sValue_location)) >= 9)
            {
                ...
                MyConn2.Open();
                ...
            }   
        }
Если значение равно 9, то выполнятся оба if.

Возможные решения:
1) Вызвать Open() в самом начале using
2) Исправить условие чтобы выполнялся только один if
3) Добавить проверку что соединение не открыто
C#
1
if (MyConn2.State != ConnectionState.Open) MyConn2.Open();
1
25.09.2018, 09:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2018, 09:51
Помогаю со студенческими работами здесь

Ошибка при создании ADODB.Connection: : Unable to open registry key 'Temporary (volatile)
Иногда при создани ADO-шного коннекшена появляется ошибка : Unable to open registry key 'Temporary...

C# и MySQL ошибка: You have a usable connection already
Доброго времени суток! Есть такая проблема, не могу никак ее решить: Пытаюсь подключить проект на...

Ошибка с AddNew (Set db = Server.CreateObject('ADODB.Connection') db.Open 'DSN=Sovch;UID=;PWD=;' SQLQuery = 'Select * From Feedback')
Люди подскажите плз в чем ошибка? Set db = Server.CreateObject('ADODB.Connection') ...

IdFTP1.List - ошибка: "Could not open data connection to port"
Код: IdFTP1.Host:='111'; IdFTP1.Username:='111'; IdFTP1.Password:='111'; IdFTP1.Port:=21; ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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