【问题标题】:Database isn't updating数据库没有更新
【发布时间】:2011-03-07 04:20:21
【问题描述】:

我正在尝试将一些数据写入一个只有一个表的 .MDF 数据库,并且在我执行这部分代码后它没有更新:

        DatabaseDataSet.MyTableRow newRow;
        newRow = databaseDataSet.MyTable.NewMyTableRow();
        newRow.name = "x";
        newRow.level = 100;
        newRow.health = 100;
        newRow.weapon = "club";
        this.databaseDataSet.MyTable.Rows.Add(newRow);

        int result = MyTableTableAdapter.Update(databaseDataSet.MyTable);
        MessageBox.Show(result.ToString());

我是使用 C# 处理 SQL 数据库的新手。

我正在使用TableAdapter.Update 更新数据库中的MyTable 表,我什至尝试编写我自己的Update 查询版本,我还尝试使用MyTableAdapter.insert 函数......但没有结果。我可以成功地从数据库中读取数据,但是在写入时,我就失败了。

【问题讨论】:

  • 您能否再次检查您的 MDF 文件(或包含该文件的文件夹)是否具有写入权限?
  • 你是否调用了 SaveChanges() 或类似的方法?
  • 我已经检查过了,没有一个 mdfs 是只读的,这应该意味着我有权更改它们。另外,我没有调用 SaveChanges() 或类似的东西。我认为更新应该仅在数据库中进行更改。
  • 你怎么知道你肯定没有写入数据库?
  • 当我问的时候,我实际上解决了这个问题..有点......它更新了数据库的副本。如果我从调试文件夹启动程序,它就像一个魅力,但从视觉工作室它没有显示。我想我没有很好地连接到数据库或其他东西。后来我想我通过连接字符串连接到数据库。

标签: c# sql database sql-update tableadapter


【解决方案1】:

更新(插入和删除)只会修改表适配器的本地客户端视图,您必须保存更改才能将其提交到数据库。

【讨论】:

    【解决方案2】:

    我会冒险猜测您在项目中使用的是紧凑型 SQL 数据库?
    这意味着无论程序在哪里运行,都会创建一个数据库文件。
    因此,如果您在调试模式下运行,您将在 bin/Debug 文件夹中获得一个数据库。在发布模式下运行它,您正在处理 bin/Release 文件夹中完全不同的数据库。运行安装的版本,它又是一个不同的数据库文件。

    当我用一个紧凑的 SQL 数据库构建我的第一个 .net 程序时,我很快就发现了这一点,重要的是要知道整个数据库都在一个文件中,该文件通常与正在运行的程序位于同一目录中。始终牢记这一事实,很多像这样的小问题不会让你烦恼。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      相关资源
      最近更新 更多