【发布时间】:2012-06-05 11:24:55
【问题描述】:
我正在从列表框中检索值并将它们格式化为字符串
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 是我传递的参数之一。它的值类似于 @raisedByLogin="4,2,1"
AddedBy 的数据类型为 bigint。
当我运行代码时,出现“将数据类型 varchar 转换为 bigint 时出错。”的错误。我理解这是因为 AdditionalBy 列的数据类型为 bigint。我无法更改该数据类型。
但是当我像 AddBy 一样投射时
SELECT * FROM AUS_CID_Cases
WHERE
CAST(AddedBy as VARCHAR) IN ( @raisedByLogin )
我没有收到错误,但没有选择任何内容,即我没有从 select 语句中得到任何结果。
我能做什么?
【问题讨论】:
标签: c# asp.net sql sql-server