Проблема следующая
Бд состоит из 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") так вообще пустой остается.
Никак не могу понять в чем ошибка.
Т.к. при запуске программы например — происходит однокртаный вызов данной процедуры — все работает нормально.