DataSet - need help!!!
От: ZeeM  
Дата: 13.01.07 16:59
Оценка:
Проблема следующая

Бд состоит из 3х связанных таблиц.
1аф зависит от 2ой и 2ая от 3ей.
В проекте имеется DataSet — в котором эти связи настроены.

Заполняю DataSet следующим образом:

        public DataSet FillDispDataSet(DataSet DispDataSet)
        {
            // Используемые переменные
            OleDbConnection conn;

            // Дата адаптеры

            OleDbConnectionStringBuilder cb;

            cb = new OleDbConnectionStringBuilder();
            cb.FileName = AppDomain.CurrentDomain.BaseDirectory + @"\DBDispLocal.udl";
            conn = new OleDbConnection(cb.ToString());


            OleDbCommand selObjects = new OleDbCommand("SELECT * FROM OBJECTS ORDER BY ID", conn);
            OleDbCommand selPoints = new OleDbCommand("SELECT * FROM POINTS ORDER BY ID", conn);
            OleDbCommand selNetInfo = new OleDbCommand("SELECT * FROM NETINFO", conn);

            try
            {
                // Очищаем ДатаСет
                DispDataSet.Tables["NETINFO"].Clear();
                DispDataSet.Tables["POINTS"].Clear();
                DispDataSet.Tables["OBJECTS"].Clear();

                // создаем дата-адаптеры
                daObjects = new OleDbDataAdapter(selObjects);
                daPoints = new OleDbDataAdapter(selPoints);
                daNetInfo = new OleDbDataAdapter(selNetInfo);

                OleDbTransaction dbTrans;

                DataSet DispDB = DispDataSet;

                // открываем базу
                conn.Open();

                dbTrans = conn.BeginTransaction();

                selObjects.Transaction = dbTrans;
                selPoints.Transaction = dbTrans;
                selNetInfo.Transaction = dbTrans;

                daObjects.Fill(DispDB, "OBJECTS");
                daPoints.Fill(DispDB, "POINTS");
                daNetInfo.Fill(DispDB, "NETINFO");

                dbTrans.Commit();
                conn.Close();
                return DispDB;
            }
            catch (OleDbException myOLEDBException)
            {
                OLEDBExceptionReport(myOLEDBException);
                return DispDataSet;
            }
            catch (Exception myException)
            {
                ExceptionReport(myException);
                return DispDataSet;
            }

        }


Иногда данные в базе обновляются и в потоке я запрашиваю приведенную выше процедуру, я хватаю или exception, или заполняются таблицы не полностью, 1ая("OBJECTS") так вообще пустой остается.
Никак не могу понять в чем ошибка.

Т.к. при запуске программы например — происходит однокртаный вызов данной процедуры — все работает нормально.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.