asp.net – SQL使用逗号分隔值和IN子句
发布时间:2020-05-23 22:49:06 所属栏目:asp.Net 来源:互联网
导读:我正在开发一个ASP.NET应用程序,并将一个字符串值“1,2,3,4”传递给一个过程,以选择那些IN(1,2,3,4)的值,但它说“转换失败时转换varchar值’1,2,3,4’到数据类型int.“ 这是aspx代码: private void fillRoles(){ /*Read in User Profile Data from database
|
我正在开发一个ASP.NET应用程序,并将一个字符串值“1,2,3,4”传递给一个过程,以选择那些IN(1,4)的值,但它说“转换失败时转换varchar值’1,4’到数据类型int.“ 这是aspx代码: private void fillRoles()
{
/*Read in User Profile Data from database */
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetStoredProcCommand("sp_getUserRoles");
db.AddInParameter(cmd,"@pGroupIDs",System.Data.DbType.String);
db.SetParameterValue(cmd,"1,4");
IDataReader reader = db.ExecuteReader(cmd);
DropDownListRole.DataTextField = "Group";
DropDownListRole.DataValueField = "ID";
while (reader.Read())
{
DropDownListRole.Items.Add((new ListItem(reader[1].ToString(),reader[0].ToString())));
}
reader.Close();
}
这是我的程序: CREATE Procedure [dbo].[sp_getUserRoles](@pGroupIDs varchar(50)) AS BEGIN SELECT * FROM CheckList_Groups Where id in (@pGroupIDs) END 解决方法这是我发现要做的事情的解决方法CREATE Procedure [dbo].[sp_getUserRoles](
@pGroupIDs varchar(50)
)
As
BEGIN
SELECT * FROM CheckList_Groups Where (',' + @pGroupIDs +',' LIKE '%,' + CONVERT(VARCHAR,id) + ',%')
End
这将获得逗号分隔列表并将其与使用LIKE的表中的id(表示为’,1,’,’等)进行比较 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET Web Forms 4.5模型绑定,其中模型包含一个集合
- 处理用户在ASP.NET MVC网站中点击“Enter”键
- 如何在ASP.NET中实现实时更新
- asp.net – 无法找到请求的.Net Framework数据提供程序.它可
- MVC/ASP.NET设计模板
- asp.net-mvc – 在模型/视图/控制器键盘快捷键之间导航?
- asp.net – 是否需要在web.config中保护连接字符串?
- 如何在ASP.NET MVC 5.2.3应用程序的其他地方获取IAppBuilde
- asp.net – 在web-farm网站上将machineKey添加到web.config
- asp.net-mvc – 使用html.actionlink将模型从视图传递到控制
