【问题标题】:ExecuteNonQuery() returning positive value but no records insertedExecuteNonQuery() 返回正值但没有插入记录
【发布时间】:2012-09-18 03:30:46
【问题描述】:

我已将本地 sqlceserver 数据库(版本 3.5.8080.0)与我的 Windows 窗体应用程序项目 (vb) 连接起来。当我尝试使用以下代码插入数据时,

infoReader = My.Computer.FileSystem.GetFileInfo(i)
cmd.CommandText = "insert into log(filename,filesize,cdate) values('" & i & "'," &     infoReader.Length & ",'" & Now.ToString(("yyyy-MM-dd")) & "')"
cmd.Connection = cs
cs.Open()
cmd.ExecuteNonQuery()
cs.Close()

cs 是 sqlceconnection 对象,声明如下:

Dim strconnection As String = "Data Source=|DataDirectory|\Database1.sdf"
Dim cs As New SqlCeConnection(String.Format("{0}", strconnection))

我已经添加了所有必需的程序集并导入了所需的命名空间。cmd.ExecuteNonQuery() 返回 1,这意味着插入命令没有问题。但是当我尝试通过服务器资源管理器查看数据时,我没有插入的行。非常欢迎任何帮助。

【问题讨论】:

  • 您是否尝试刷新服务器资源管理器上的记录?
  • @JohnWoo 是的!我这样做了,也再次执行了executesql。
  • 您在研究开发数据库吗?还是您正在使用应用程序数据库,例如 appfolder/debug/Datadirectory Database1.sdf?
  • @estebane9 我不知道你命名的那些东西是什么,但我只是从 VS 2010 调试应用程序。我添加的数据库是使用右键单击解决方案资源管理器项目名称,添加->新项目->本地数据库
  • 好的,当您使用 SqlCe 时,数据库是一个添加到应用程序输出文件夹的文件。您在解决方案的同一文件夹中有一个 DataDirectory。但是,如果您查看 Debug 文件夹,您将看到 .exe 和另一个 DataDirectory。服务器资源管理器连接到解决方案文件夹,而不是 Debug 文件夹,这就是您看不到新行的原因

标签: vb.net winforms sql-server-ce executenonquery


【解决方案1】:

好的,当您使用 SqlCe 时,数据库是一个添加到应用程序输出文件夹中的文件。您在解决方案的同一文件夹中有一个 DataDirectory。但是,如果您查看 Debug 文件夹,您将看到 .exe 和另一个 DataDirectory。服务器资源管理器连接到解决方案文件夹,而不是 Debug 文件夹,这就是您看不到新行的原因

【讨论】:

  • Gr8 回答!像宝石一样工作!谢谢:D
猜你喜欢
  • 2013-02-07
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多