【问题标题】:TableAdapter.Update(dataset) not saving to database in Ado.NETTableAdapter.Update(dataset) 未保存到 Ado.NET 中的数据库
【发布时间】:2015-11-07 14:15:03
【问题描述】:

我看过关于这个主题的其他帖子。然而到目前为止还没有解决办法。我正在使用 C# 中的 Visual Studio 2013。
我有一个数据库“Database1.mdf”,其中有一个名为“客户”的表,它只有两条记录。我基于此数据库创建了名为 CustomersDataSet 的数据集(菜单:项目、添加新数据源...)。
这是我的代码。

CustomersDataSetTableAdapters.CustomersTableAdapter cta = new CustomersDataSetTableAdapters.CustomersTableAdapter();

        CustomersDataSet ds = new CustomersDataSet();

  // Fill our customersDataSetTable with the data from customers adapter
        cta.Fill(ds.Customers);

        Console.WriteLine("BEFORE");
        foreach (CustomersDataSet.CustomersRow customer in ds.Customers.Rows)
        {
            Console.WriteLine(customer.FirstName + " " + customer.LastName);
        }



        Console.WriteLine("\nMaking changes now...");

        // Insert a new record
        CustomersDataSet.CustomersRow newCustomer = ds.Customers.NewCustomersRow();
        newCustomer.FirstName = "Brian";
        newCustomer.LastName = "Faley";
        newCustomer.City = "Denver";
        newCustomer.State = "CO";


        ds.Customers.AddCustomersRow(newCustomer);

        // Update a record, [0] = gets access to the first row of the customers table
        ds.Customers[0].FirstName = "Robert";

        // Delete a record
        ds.Customers[1].Delete();

        // Update the dataset ds. Commit changes to the database
        cta.Update(ds);

        Console.WriteLine("\nAFTER");
        foreach (CustomersDataSet.CustomersRow customer in ds.Customers.Rows)
        {
            Console.WriteLine(customer.FirstName + " " + customer.LastName);
        }

只要我确实看到“之后”之后对数据集所做的更改,它就可以工作。
然而,我可以随心所欲地运行它——永远不会将更改写入底层数据库。更新应该做到这一点,但它没有。我的代码中没有AcceptChanges()。我已经跟进了所有这些建议 - 它们不会导致任何地方。
有人有想法吗?
我用谷歌搜索了很多关于这个问题的帖子都没有解决。

【问题讨论】:

    标签: c# save dataset tableadapter


    【解决方案1】:

    当您调试应用程序时,mdf 文件会复制到 bin\debug 文件夹,并且您的更改会提交到那里的数据库。

    每次启动项目时,调试文件夹中的 mdf 都会被原始数据库覆盖。

    您可以通过转到解决方案中的数据库设置来停止此行为,并将数据库设置为仅当您的版本较新时才复制。

    您的代码可能一直在工作。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-10-26
      • 2021-10-27
      • 2021-02-02
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 2010-09-12
      • 2019-07-12
      相关资源
      最近更新 更多