2017-06-22 3 views
0

ユーザーテーブル(SQL Server Compact 3.5)に行を挿入しようとしています。これは、(姓、姓とのUserPasswordがNVARCHAR、のisActiveがBITである)私のクエリです:SQL CE挿入クエリはC#の外でのみ動作します

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); 

実行しているとき、私はパースエラーが出ます私のコード。しかし、私は、コンパクトビューを介してまっすぐにクエリを実行すると、行はちょうど良い挿入されて取得します。

私は別の方法でクエリを実行しています(このメソッドからSqlCeCommandを返しています)。

思考?値

+0

それはちょうど 'INSERTだ(@LastName、@FirstName、@IsActive、@UserPassword)' – LarsTech

答えて

0

は、「VALUES」のデータを閉鎖する閉じ括弧が欠落しているようです。ユーザー(姓、姓、のisActive、のUserPassword)VALUES INTO

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

当たり前!私はそのようなdoofです。ありがとう! – bsmith

+0

は正解とマークできますか? – Rob

0

自分の与えられたコードの後に​​閉じ括弧が欠落し

関連する問題