ASP.NET MVC Webアプリケーションを作成してデータベースに追加していますが、自分のサイトにuserSettingsを追加するときに重複を削除しようとしています。データベースに追加しても重複キーを持たない
C#のコントローラで私のSQLコードは:
db.Database.ExecuteSqlCommand(@"INSERT INTO [dbo].[Settings] ([SiteID],
[SiteName]) VALUES (" + settings.SiteID + ",'" + settings.SiteName + "' WHERE
NOT EXISTS (SELECT SiteID FROM [dbo].[Settings] WHERE ([SiteID]) = " +
settings.SiteID + ")");
私はこのエラーを取得しています:
System.Data.SqlClient.SqlException occurred
HResult=0x80131904
Message=Incorrect syntax near the keyword 'WHERE'.
Source=.Net SqlClient Data Provider
StackTrace:
Cannot evaluate the exception stack trace
おかげ
入れ子の選択されたステートメントでエラーが発生していると思います....まあ... SiteIdのタイプによって異なります。数値の場合は、2番目のwhere句がその周りに一重引用符を追加しています。これが問題です。 typeがstringの場合、最初のwhere文には一重引用符がありません。 – Sparrow
あなたはそれがintなので正しいので、二重引用符を2番目のwhere文から削除しましたが、同じエラーです。変更を反映するために上記の質問を更新しました。しかし、その改善のおかげで –
ああ、あなたは最初のwhere節の前に ')'がありません。また、2番目のwhere句では、内部にSiteIdを入れる必要はありません – Sparrow