私はコード内の単一引用符のバグを修正しようとしている:誤警報:SqlCommandオブジェクト、SqlParameterおよび単一引用符
std::string Index;
connection->Open();
String^ sTableName = gcnew String(TableName.c_str());
String^ insertstring = String::Format("INSERT INTO {0} (idx, rec, date) VALUES (@idx, @rec, getdate())", sTableName);
SqlCommand^ command = gcnew SqlCommand(insertstring, connection);
String^ idx = gcnew String(Index.c_str());
command->Parameters->Add("@idx", SqlDbType::VarChar)->Value = idx;
バグがIDXは=「ことだ」と、SQLがあると言って失敗したということです構文エラーです。明らかに、問題は引用にあります。 しかし、いくつかのグーグルでは、パラメータを使用すると引用符を使用する方法が示されています。 typeがTEXTでVARCHARでない場合、SqlParameterはうまく動作します。
文字列内の手動で引用符の数を2倍にする以外の解決策はありますか?
更新:SQL Management Studioでこのフィールドを手動で編集しようとしましたが、VARCHARフィールドに単一引用符を使用できませんでした。それはSQLのこの通常のですか?
一重引用符は間違いありませんか?実際のエラーメッセージは何ですか? – Steven
はい。エラーメッセージ "S 'の近くの構文が間違っています。" –