简单的SQL插入

本文关键字:插入 SQL 简单 | 更新日期: 2023-09-27 18:18:05

我是新的数据库,我试图使用SQL添加一个新的记录。代码第一次运行良好,但第二次抛出一个错误,说它不能向唯一键写入重复项。第三次运行正常,但第四次抛出错误。基本上,似乎每隔一次就会抛出错误。我理解为什么写入数据时会抛出错误,但是当我检查数据库时,它仍然是空的。我在代码中做错了什么,导致查询不需要编写数据?

EDIT如果我直接在数据库中输入SQL,它可以工作。当我使用下面的c#代码时,它不起作用。

using (SqlCeConnection con = new SqlCeConnection(conString))
{
    con.Open();
    using (SqlCeCommand com = new SqlCeCommand("INSERT INTO User (Name, Age, URL) VALUES ( @name, @age, @url )", con))
    {
        com.Parameters.AddWithValue("@name", "James Y");
        com.Parameters.AddWithValue("@age", 28);
        com.Parameters.AddWithValue("@url", "www.example.com" );
        com.ExecuteNonQuery();
    }
}

简单的SQL插入

我已经弄明白了一部分。显然你还必须下载SQL CE Tools for Visual Studio。我这样做了,我有了一个新的选项,包括SQLCE 4到我的项目(我使用的是SQLCE选项,假设它默认使用4.0,因为这是我安装的)。现在唯一的问题是,当我尝试添加它时,它说项目类型(控制台项目)不支持它。我在MSDN上看到一篇文章说SQLCE 4只适用于网络项目,但这是几个月前的一篇文章,目前的下载页面显示它只适用于网络或桌面应用程序。无论哪种方式,这都被证明是太麻烦了,所以如果我不能很快解决这个问题,我就去寻找一个替代数据库。

FIXED我卸载了SQLCE4和SQLCE Tools,然后重新安装。

尝试在SQL中执行以下操作:

INSERT INTO [User] (Name, Age, URL) VALUES ( @name, @age, @url )

User是sql server中的保留字。您应该尽量不要将您的表命名为"user"。

Name为保留字。用[]

using (SqlCeCommand com = new SqlCeCommand("INSERT INTO User ([Name], Age, URL) VALUES ( @name, @age, @url )", con))

由于您在连接字符串中使用DataDirectory,因此该文件被复制到bin/debug文件夹中,因此您有多个数据库副本,一个在项目中,一个在调试文件夹中。将连接字符串设置为完整路径,以避免在调试时出现任何混乱!