Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
Артем(новый)
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 9
1

Ошибка при многократном обращении к БД

27.03.2012, 12:46. Просмотров 1385. Ответов 6
Метки нет (Все метки)

Всем добрый день! Подскажите, появляется "Неопознанная ошибка" при многократном пересчете стоимости полиса. Пересчет состоит из запросов в базу mdb. Пример запроса
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 Dim conString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\base.accdb;Persist Security Info=false" 'путь к БД. |DataDirectory| - формируется самостоятельно при добавление БД в проект (посмотреть эту строчку можно будет в App.config.
            Dim con As New OleDb.OleDbConnection(conString) 'новое подключение БД использую строковую переменну
            Dim command As New OleDb.OleDbCommand("SELECT Gruppa FROM " & tablauto & " WHERE [Marka]='" & marka & "' and [Model]='" & model & "'", con) 'новая команда построения БД
            
            Try
 
                con.Open()
                Dim DataReader As OleDb.OleDbDataReader = command.ExecuteReader() 'переменная чтения БД
                Do While (IsNothing(TextBox3.Text) = False) 'вечный цыкл (пока соблюдено условие)
                    DataReader.Read() 'читаем бд
 
                    gruppa = DataReader("Gruppa").ToString 'заполняем значением переменной DataReader
                Loop
                con.Close()
            Catch ex As Exception
                'MessageBox.Show(ex.Message, "Бу") 'если нужно отловить ошибки
            End Try
Программка считает все правильно, заметил эту ошибку когда попытался подряд 4-5 раз пересчитать, возникает эта неопознанная ошибка и перестают работать запросы в базу. Не раскрываются из combobox'ов списки авто, combobox заполняется как раз из базы. Вообще не какие запросы не работают.
Ошибка System.Data.OleDb.OleDbException (0x80004005): Неопознанная ошибка
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2012, 12:46
Ответы с готовыми решениями:

Ошибка синтаксиса запроса при обращении к БД
Добрый вечер, форумчане !) Проблема подкралась внезапно.. Пытаюсь добавить в...

Ошибка при одновременном обращении к базе с нескольких компьютеров
Когда тестирую программу на своём компьютере - всё работает, а когда...

Ошибка при обращении к С++ CLR проекту
Пишу программу в VisualStudio, состоящую из С++ CLR проекта и С#. На другом...

Ошибка "Сервер RPC недоступен" при повторном обращении к Word
Добрый день! Вывожу на печать с формы в документ Word. Все получается. Но при...

Зависание при работе с HttpWebRequest при обращении к некоторым сайтам
При запуске данного кода возникает зависание программы во время инициализации...

6
andrew_w2k
325 / 325 / 90
Регистрация: 04.03.2010
Сообщений: 648
27.03.2012, 12:52 2
используйте условие
C#
1
while(DataReader.Read())
Добавлено через 1 минуту
подозрение, что у Вас программа "зацикливается"
1
Learx
1046 / 853 / 194
Регистрация: 31.03.2010
Сообщений: 2,490
27.03.2012, 13:25 3
vb.net
1
2
3
4
Do While reader.Read()
                Console.WriteLine(reader.GetInt32(0) _
                  & vbTab & reader.GetString(1))
            Loop
Так надо работать с риадером. Скорее всего ошибка возникает при попытке считать несуществующуб строчку
1
andrew_w2k
325 / 325 / 90
Регистрация: 04.03.2010
Сообщений: 648
27.03.2012, 13:35 4
Learx, не обязательно
конструкция
vb.net
1
gruppa = DataReader("Gruppa").ToString
или
C#
1
gruppa = DataReaderх["Gruppa"].ToString();
вполне подходит, даже если в БД не будет значений, при условии что
C#
1
while(DataReaderх.Read())
0
Learx
1046 / 853 / 194
Регистрация: 31.03.2010
Сообщений: 2,490
27.03.2012, 13:40 5
andrew_w2k, так у Артема нету такой строчки!


C#
1
while(DataReaderх.Read()
0
Артем(новый)
0 / 0 / 0
Регистрация: 13.09.2011
Сообщений: 9
27.03.2012, 16:26  [ТС] 6
Спасибо за советы, программка считает столько раз, сколько надо. Код использовал такой
vb.net
1
2
3
Do While DataReader11.Read()
Ugon_BTx = DataReader11("Ugon_BTx").ToString
Loop
Правда считать стала раза в 2 дольше.
0
Learx
1046 / 853 / 194
Регистрация: 31.03.2010
Сообщений: 2,490
30.03.2012, 18:23 7
все-таки ты пытался считать несуществующую строку.

вот так, скорее всего, будет лучше всего:

vb.net
1
2
3
    Do While DataReader11.Read() && IsNothing(TextBox3.Text) = False
    Ugon_BTx = DataReader11("Ugon_BTx").ToString
    Loop
хотя я не вижу обращения к TextBox3.Text внутри цикла и не совсем понимаю зачем его проверять.
0
30.03.2012, 18:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2012, 18:23

Инкремент при обращении
Привет всем стоит задача :при обращении к определённому полю в базе данных...

Пустые поля при обращении к vk.api
Привет всем! Проблема такая, я решил сделать что то на подобии vk music. ...

Фильтрация по нескольким параметрам при обращении к БД
Есть база, но основании следующего кода: public class Auto { public int...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru