SQL CE 插入查询仅适用于 C# 之外

SQL CE Insert Query works only outside of C#

我正在尝试在我的用户 table (SQL Server Compact 3.5) 中插入一行。这是我的查询(LastName、FirstName 和 UserPassword 是 NVARCHAR,IsActive 是 BIT):

INSERT INTO Users (LastName, FirstName, IsActive, UserPassword) VALUES ('J', 'R', 1, 'T')

我在 C# 中将其转换为以下代码块:

string returnQuery = "INSERT INTO Users (LastName, FirstName, IsActive, UserPassword)"
                                   + "VALUES(" + "'" + "@LastName" + "', '" + "@FirstName" + "', @IsActive" + ",'" + "@UserPassword" + "'";

        SqlCeCommand returnQueryCommand =
            new SqlCeCommand(returnQuery, connection) { CommandType = CommandType.Text };
        returnQueryCommand.Parameters.AddWithValue("@LastName", newUser.LastName);
        returnQueryCommand.Parameters.AddWithValue("@FirstName", newUser.FirstName);
        returnQueryCommand.Parameters.AddWithValue("@IsActive", newUser.IsActive);
        returnQueryCommand.Parameters.AddWithValue("@UserPassword", newUser.UserPassword);

运行我的代码出现解析错误。但是,当我 运行 直接通过 CompactView 查询时,该行插入得很好。

我在另一个方法中执行查询(我从这个方法返回 SqlCeCommand)。

想法?

值后缺少右括号

您给定的代码似乎缺少用于关闭 "VALUES" 数据的右括号。

string returnQuery = "INSERT INTO Users (LastName, FirstName, IsActive, UserPassword)" + "VALUES(" + "'" + "@LastName" + "', '" + "@FirstName" + "', @IsActive" + ",'" + "@UserPassword" + "')";