【问题标题】:saving record in VB.NET [closed]在VB.NET中保存记录[关闭]
【发布时间】:2022-11-03 19:32:35
【问题描述】:

感谢您检查我的代码

无论我做什么,记录都不会保存,它不会给出任何错误

我将数据库文件从另一个项目复制到我的项目的根目录

我有一个叫做fill的函数,它保存了select数据库中的信息,当我保存它时,它会在datagrid中显示新记录,但是当我再次打开程序时,它不显示记录,当我检查表本身,什么都没有保存。

这是我的代码:

Dim con1 As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector  y|anbar.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
 con1.Open()
 Dim com As New SqlCommand("INSERT INTO tblcustomer(name)Values(@name)", con1)
 com.Parameters.AddWithValue("name", txtName.Text)
 com.CommandType = CommandType.Text
 com.ExecuteNonQuery()
con1.Close()

感谢您的意见。

【问题讨论】:

  • 调试的时候com.ExecuteNonQuery()的返回值是多少?
  • 你有一个错字:|DataDirector y| - 注意空格。

标签: vb.net sql-server-express


【解决方案1】:

cmets 中的问题是相关的:ExecuteNonQuery 返回什么值?我相信答案将是 1,这意味着一切都按预期工作,而您只是不知道本地数据文件是如何工作的。

当您将数据文件添加到您的项目(MDF、MDB、ACCDDB 等)时,它会成为源文件,即项目的一部分。构建项目时,编译后的 EXE 将保存到输出文件夹,数据文件也会复制到那里。这是您的应用程序在运行时连接到的副本。

默认情况下,每次构建项目时,源文件都会复制到输出文件夹。这意味着如果您运行项目、更改数据库、停止项目、更改代码然后再次运行项目,您的数据库更改将被覆盖,就像您从未做过一样。

拥有这两个数据库副本很重要,因为您不希望在发布应用程序时必须清除所有测试数据。您只想构建并获得一个干净的数据库,这正是发生的事情。

您的“问题”的解决方案是在解决方案资源管理器中选择数据文件,打开属性窗口并将Copy to Output Directory 属性更改为Copy if Newer。这样,只有在您对源文件进行了更改时,才会覆盖输出文件夹中的工作数据文件。这样,您对数据库所做的更改将持续存在,直到您更改源数据、删除工作数据文件或再次更改该属性。

【讨论】:

  • 非常感谢您的好意,我做了完全相同的事情,并且奏效了。现在告诉我如何在 SQL Explorer 窗口中的项目 (Visual Studio) 中拥有相同的 Sql 文件,以便我可以编辑它。
  • 非常感谢您的好意,我做了完全相同的事情,并且奏效了。现在告诉我如何在 SQL Explorer 窗口中的项目 (Visual Studio) 中拥有相同的 Sql 文件,以便我可以编辑它。
  • @teymoorei,答案中的 cmets 不是提出新问题的地方。如果您有问题,请发布问题。确保它符合网站要求的标准。
【解决方案2】:

这个方法解决了我的问题

但是每次进入项目,我都必须再次执行相同的步骤

如何永久解决这个问题?

【讨论】:

  • 您已将此添加为答案,但大概您打算添加为评论?
猜你喜欢
  • 2012-06-09
  • 1970-01-01
  • 2014-06-07
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
相关资源
最近更新 更多