2013-12-16 1 views
1

Я пишу программу для управления офисом. (Избавление от Excels XD).Обновите данные, не используя DataAdapter.Fill 2 раза

У меня есть класс DAL со следующими переменными:

private MySqlConnection connection; 
    private DataSet ds; 
    private Hashtable adapters; 

Существует этот метод:

public bool AddTable(string tableName, string sqlStat) 
    { 
     if (!ds.Tables.Contains(tableName)) 
     { 
      MySqlDataAdapter adapter = new MySqlDataAdapter(sqlStat, connection); 
      MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter); 
      adapter.InsertCommand = builder.GetInsertCommand(); 
      adapter.UpdateCommand = builder.GetUpdateCommand(); 
      adapter.DeleteCommand = builder.GetDeleteCommand(); 
      adapter.Fill(ds, tableName); 
      adapters.Add(tableName, adapter); 
      return true; 
     } 
     return false; 
    } 

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

+0

Нам нужно больше информации. Что такое UpdateCommand? Как другой клиент выбирает (недавно обновленные) данные? – Sire

+0

Есть несколько экземпляров программы, запущенных в одно и то же время. оба открывают ту же таблицу. программа показывает им всю информацию. (Они видят ту же таблицу). Затем один из них редактирует таблицу и сохраняет. (MySQL_Database сохраняет изменения). Теперь :: Второй не увидит изменения, которые были сделаны до тех пор, пока он не перезапустит программу. Мне нужно, хочу и должен сделать так, чтобы второму нужно было только обновить форму, отображающую таблицу. – user2556154

ответ

0

Вам необходимо прочитать оптимистичный параллелизм, который помогает решить проблему одновременного чтения и обновления одних и тех же данных несколькими пользователями.

Я предлагаю вам начать здесь:

+0

Я понятия не имею, как это сделать. но после того, как я прочитал информацию Microsoft по этому вопросу, я теперь имею эту ошибку в своем коде, пока есть только один экземпляр программы, которая работает. Я думал, что есть проблема в команде автоматического обновления, но я проверил параметры, и я не вижу проблем. – user2556154