一部のレコードを検索またはフィルタリングするために、C# プログラムに sql クエリがあります。アポスロープを使用して文字列値を渡すと、C# プログラムで不適切なキーワード エラーがスローされます。
私のサンプル入力
String Val= Tests of the 'convergence hypothesis' : a critical note / Daniel Cohen.
マイクエリ
string MySqlQry="SELECT bc.BibId,
stuff(
(SELECT ' ' + bsc.NormValue + ''
FROM BibContents bsc
WHERE bsc.bibid = bc.bibid
AND bsc.tagno = '245'
ORDER BY bsc.Sfld
FOR xml path(''), root('MyString'), TYPE).value('/MyString[1]','varchar(max)') , 1, 1, '') AS Title,
stuff(
(SELECT ' ' + bsc.NormValue + ''
FROM BibContents bsc
WHERE bsc.bibid = bc.bibid
AND bsc.tagno = '020'
ORDER BY bsc.Sfld
FOR xml path(''), root('MyString'), TYPE).value('/MyString[1]','varchar(max)') , 1, 1, '') AS ISBN,
stuff(
(SELECT ' ' + bsc.NormValue + ''
FROM BibContents bsc
WHERE bsc.bibid = bc.bibid
AND bsc.tagno = '250'
ORDER BY bsc.Sfld
FOR xml path(''), root('MyString'), TYPE).value('/MyString[1]','varchar(max)') , 1, 1, '') AS Edition,
stuff(
(SELECT ' ' + bsc.NormValue + ''
FROM BibContents bsc
WHERE bsc.bibid = bc.bibid
AND bsc.tagno = '260'
ORDER BY bsc.Sfld
FOR xml path(''), root('MyString'), TYPE).value('/MyString[1]','varchar(max)') , 1, 1, '') AS Publisher,
(SELECT top(1) Value FROM BibContents
WHERE TagNo='100'
AND Sfld='a'
AND BibId=bc.BibId) AS Author
FROM BibContents bc
WHERE (bc.NormValue LIKE '" + Val + "%'
OR bc.NormValue LIKE '% " + Val + "%')
AND bc.TagNo='245'";
model = db.ExecuteStoreQuery<PoDetails>(MySqlQry).ToList();
解決策を提供するための助けをいただければ幸いです。