Форум программистов, компьютерный форум, киберфорум
Visual C++: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 24
1

Неоднократной подключение к базе данных sql в одном обработчике

28.05.2013, 16:37. Показов 1245. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго дня. У меня такая проблема. Есть база данных sql в ней несколько столбцов. Я подключаюсь к ней считываю информацию из одного столбика в массив, далее сортирую этот массив по возрастанию с помощью сортировки Шелла. После этого мне необходимо подключится к базе снова для того чтобы считывать информацию проверять условие и если оно верное то вывести инфу в listView1. Проблема в том что когда я уже закрыл поток connection->Close() я не могу его заново открыть connection->Open() выдаёт ошибку:

Необработанное исключение типа "System.InvalidOperationException" произошло в System.Data.SqlServerCe.dll

Дополнительные сведения: Неудачная попытка выполнить Read при закрытом процессе чтения.


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
SqlCeEngine^ engine =
                    gcnew SqlCeEngine("Data Source='schedule.sdf';");
                SqlCeConnection^ connection =
                    gcnew SqlCeConnection (engine->LocalConnectionString);
                connection->Open();
                SqlCeCommand^ command = connection->CreateCommand();
                command->CommandText = "SELECT * FROM schedule ORDER BY SOD";
                SqlCeDataReader^ dataReader = command->ExecuteReader();
                String^ st;
                int mas[500];
                int counter=0;
                while (dataReader->Read())
                {
                    st = dataReader->GetValue(1)->ToString();
                    int per = Convert::ToInt32(st);
                    mas[counter]=per;
                    counter++;
                }
                connection->Close();
                int step = counter / 2;
                while (step > 0)//пока шаг не 0
                {
                    for (int i = 0; i < (counter - step); i++)
                    {
                        int j = i;
//будем идти начиная с i-го элемента
                        while (j >= 0 && mas[j] > mas[j + step])
//пока не пришли к началу массива
//и пока рассматриваемый элемент больше
//чем элемент находящийся на расстоянии шага
                        {
//меняем их местами
                            int temp = mas[j];
                            mas[j] = mas[j + step];
                            mas[j + step] = temp;
                            j--; 
                        }
                    }
                    step = step / 2;//уменьшаем шаг
                }
                int j=0;
                int itemIndex=0;
                connection->Open();
                for( int a=0;a<counter ;a++ )
                {
                    while (dataReader->Read())
                    {
                            st = dataReader->GetValue(1)->ToString();
                            int per = Convert::ToInt32(st);
                            if (per==mas[j])
                            {
                                listView1->Items->Clear();
                                for(int i=0; i<dataReader->FieldCount; i++)
                                {
                                    st = dataReader->GetValue(i)->ToString();
                                    switch (i)
                                    {
                                        case 0:
                                            listView1->Items->Add(st);
                                            break;
                                        case 1:
                                            listView1->Items[itemIndex]->SubItems->Add(st);
                                            break;
                                        case 2:
                                            listView1->Items[itemIndex]->SubItems->Add(st);
                                            break;
                                        case 3:
                                            listView1->Items[itemIndex]->SubItems->Add(st);
                                            break;
                                        case 4:
                                            listView1->Items[itemIndex]->SubItems->Add(st);
                                            break;
                                        case 5:
                                            listView1->Items[itemIndex]->SubItems->Add(st);
                                            break;
                                        case 6:
                                            listView1->Items[itemIndex]->SubItems->Add(st);
                                            break;
                                        case 7:
                                            listView1->Items[itemIndex]->SubItems->Add(st);
                                            break;
                                        case 8:
                                            listView1->Items[itemIndex]->SubItems->Add(st);
                                            break;
                                        case 9:
                                            listView1->Items[itemIndex]->SubItems->Add(st);
                                            break;
                                        case 10:
                                            listView1->Items[itemIndex]->SubItems->Add(st);
                                            break;
                                        };
                                }
                            }
                    }
 
                }
                connection->Close();
            }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2013, 16:37
Ответы с готовыми решениями:

Подключение к базе данных FireBird
Приветствую! Сложилась следующая ситуация:) Предыдущие клиенты БД писал на Java, и так сложилось,...

Подключение к Базе Данных MS SQL
Всем привет! Нужно подключиться к серверу MS SQL. Опытные программисты, подскажите, каким образом...

Подключение к базе данных MS SQL
Всем доброго времени суток! Есть задача: брать данные из java-приложения, записывать их в базу MS...

Подключение java к базе данных sql 2008 r2
Всем доброго времени суток.Нужна помощь в подключении java с sql , через интернет ,как это сделать...

1
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 24
31.05.2013, 11:24  [ТС] 2
Проблему решил сам
0
31.05.2013, 11:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2013, 11:24
Помогаю со студенческими работами здесь

Подключение к базе данных (локальному созданному файлу sql)
Всем привет! Помогите! К примеру на phpmyadmin я создал таблицу users,потом скачал её в sql...

Программное подключение элемента управления данными Adodc к базе данных SQL Server
Привет всем! Подскажите пожалуйста, как правильно реализовать подключение элемента управления...

Подключение к sql и Excel на одном листе
Добрый день, пожалуйста-пожалуйста, помогите! Голова уже кипит, а результат требуют! в один...


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

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