【问题标题】:Why can't I insert a record into my SQL Compact 3.5 database?为什么我不能在我的 SQL Compact 3.5 数据库中插入记录?
【发布时间】:2010-10-10 06:40:51
【问题描述】:

我刚刚使用 MSDN 的文档制作了一个非常简单的测试应用程序。我要做的就是在我的表中插入一条记录,该表位于我的 VS 2010 应用程序的 SQL Server Compact 数据库中。

但是当我运行它时,它的表现就像它执行得很好(没有错误),但是当我从服务器资源管理器中查看表数据时,一条记录从未插入到我的 SQL Compact 3.5 数据库中。

我的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlServerCe;

namespace ConsoleApplication1
{
class Program
{
    static void Main(string[] args)
    {
        SqlCeConnection conn = null;

        try
        {
            conn = new SqlCeConnection("Data Source = test.sdf; Password ='pass'");
            conn.Open();
            SqlCeCommand cmd = conn.CreateCommand();
            cmd.CommandText = "INSERT INTO TEST ([test]) Values('NWIND')";

            cmd.ExecuteNonQuery();
        }
        finally
        {
            conn.Close();
        }

    }
}

}

我有一个名为 test.sdf 的数据库。它包含一个表“test”,其中包含 1 列“test”。

我的示例测试应用程序位于:http://dl.dropbox.com/u/3051071/ConsoleApplication1.zip

我已经测试了与我的 test.sdf 数据库的数据库连接,并且测试正常。

我一辈子都想不通为什么我不能在我的表中插入一条记录。每当我在执行后查看我的数据时,我的表中的值始终为空。

谁能告诉我我在这里做错了什么?

谢谢。

【问题讨论】:

  • 您是否尝试过手动插入记录?尝试在 Profiler 中观看?

标签: c# sql-server sql-server-ce


【解决方案1】:

您在 SSMS 中查看的是哪个 .sdf 文件?我刚刚试用了您的应用程序 - 检查 bin\Debug 文件夹中 .sdf 中测试表的内容 - 它对我来说是正确的。

【讨论】:

  • +1 代码看起来不错!!我还认为您可能正在插入/检查两个不同的数据库!
  • 我就是这样的 n00b。非常感谢你们。我正在检查我的根目录中的数据库;不是我的调试目录。
【解决方案2】:

我将我的数据库移出 |DataDirectory|因为我觉得在 Bin\Debug 文件夹中使用 db 时感觉不太好......所以现在一切都很好:-)

因为在调试时所有内容都已移至 Bin\Debug 文件夹 :-/ 不知道 :-( 但现在很棒,谢谢伙计们

了解更多Here is more info

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    相关资源
    最近更新 更多