2017-06-22 78 views
0

我想在我的用戶表(SQL Server Compact 3.5)中插入一行。這是我的查詢(姓,名和的userPassword是NVARCHAR,IsActive是BIT):SQL CE插入查詢只能在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); 

我得到一個解析錯誤運行時:

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

我在C#轉換這下面的代碼塊我的代碼。但是,當我直接通過CompactView運行查詢時,行插入得很好。

我在另一個方法中執行查詢(我從這個方法返回SqlCeCommand)。

想法?

+0

這只是'INSERT INTO用戶(姓氏,名字,IsActive,userPassword的)VALUES(@LastName,@firstName,@IsActive,@UserPassword)' – LarsTech

回答

0

缺少結束括號值後

+0

咄!我真是太蠢了。謝謝! – bsmith

+0

可以標記爲正確答案? – Rob

0

你定的代碼似乎缺少一個右括號關閉「值」的數據。

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