【问题标题】:Update the datatable without using DataAdapter.Fill 2 times在不使用 DataAdapter.Fill 的情况下更新数据表 2 次
【发布时间】:2014-01-04 01:11:49
【问题描述】:

我正在编写一个管理办公室的程序。 (摆脱 Excels XD)。

我有一个包含以下变量的 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 数据库的服务器。 我需要确保当一个客户端更改数据库中的某些内容时,另一个客户端会看到新数据,但这不会发生。

【问题讨论】:

  • 我们需要更多信息。什么是更新命令?其他客户端如何选择(最近更新的)数据?
  • 程序有多个实例同时运行。都打开同一张桌子。该程序向他们显示所有信息。 (他们看到同一张桌子)。然后其中一个编辑表格并保存。 (MySQL_Database 已保存编辑)。现在 :: 第二个在重新启动程序之前不会看到所做的编辑。我需要,想要并且必须使第二个只需要刷新显示表格的表单。

标签: c# mysql data-access-layer


【解决方案1】:

您需要阅读乐观并发,这有助于解决多个用户同时读取和更新相同数据的问题。

我建议你从这里开始:

【讨论】:

  • 我不知道怎么做。但是在我阅读了微软关于这个主题的信息之后,我的代码中现在出现了这个错误,而只有一个正在运行的程序实例。我以为自动更新命令有问题,但我检查了参数,我发现没有问题..
猜你喜欢
  • 1970-01-01
  • 2013-03-25
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 2018-06-27
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多