【问题标题】:SQL CE Insert Query works only outside of C#SQL CE 插入查询仅适用于 C# 之外
【发布时间】:2017-06-22 16:52:38
【问题描述】:

我正在尝试在我的用户表 (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)。

想法?

【问题讨论】:

  • 只是INSERT INTO Users (LastName, FirstName, IsActive, UserPassword) VALUES (@LastName, @FirstName, @IsActive, @UserPassword)

标签: c# sql-server-ce


【解决方案1】:

值后缺少右括号

【讨论】:

  • 呃!我真是个笨蛋。谢谢!
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    相关资源
    最近更新 更多