リストボックスから値を取得し、文字列で次のようにフォーマットしています
if (lbRaisedByLogin.SelectedIndex != -1)
{
foreach (ListItem item in lbRaisedByLogin.Items)
{
if (item.Selected == true)
{
sb.AppendFormat("{0},", item.Value);
}
}
searchCase.raisedByLogin = sb.ToString().TrimEnd(Convert.ToChar(","));
sb.Length = 0;
}
これらの文字列をストア プロシージャにパラメータとして渡しています (Datatype -- Varchar(Max))
ストアドプロシージャでは、これらの値を次のように比較しています
SELECT * FROM AUS_CID_Cases
WHERE
AddedBy IN ( @raisedByLogin )
@raisedByLogin は、渡したパラメーターの 1 つです。@raisedByLogin="4,2,1" のような値があります
addedBy のデータ型は bigint です。
コードを実行すると、「データ型 varchar から bigint への変換エラー」というエラーが表示されます..AddedBy 列のデータ型が bigint であるためだと理解しています。そのデータ型を変更することはできません。
ただし、AddedBy のようにキャストすると
SELECT * FROM AUS_CID_Cases
WHERE
CAST(AddedBy as VARCHAR) IN ( @raisedByLogin )
エラーは発生しませんが、何も選択されていません。つまり、select ステートメントから結果が得られません。
私に何ができる?