gpt4 book ai didi

c# - 在存储过程中使用 LIKE 命令

转载 作者:行者123 更新时间:2023-11-30 00:37:30 24 4
gpt4 key购买 nike

我有一个像这样的存储过程

ALTER PROCEDURE dbo.sp_CheckGlobalizationResourceValue
(
@ResourceObject NVARCHAR(255),
@ResourceName NVARCHAR(128)
)

AS

select count(*) from vpglobalizationresources
where ResourceObject = @ResourceObject and
ResourceName like '%' + @ResourceName + '%'

我正在使用 Linq to SQL 类。我从上面显示的 .cs 文件发送 ResourceObject 和 ResourceName。而且它的returnValue总是0,为什么?存储过程或cs类有问题吗?我在数据库中运行了这个查询,它在那里工作得很好。

public static bool CheckGlobalizationResourceValue(string resourceObject, string resourceName)
{
try
{
using (var dataContext = new ResourceDBDataContext())
{
resourceObject = resourceObject.Replace(ConfigurationHelper.MainDirectory + "\\", "");
resourceObject = resourceObject.Replace("\\", "/");
//resourceName = string.Format("'%{0}%'", resourceName);

var result = dataContext.sp_CheckGlobalizationResourceValue(resourceObject, resourceName);
if ((int)result.ReturnValue == 0)
{
return false;
}
else
{
return true;
}
//return (int)result.ReturnValue != 0;
}
}
catch (Exception exception)
{
throw new Exception("An error occured when retrieving data from database");
}
}

最佳答案

问题可能出在您的存储过程中。我猜你需要在 ResourceObject 过滤中使用 like 语句

select count(*) from vpglobalizationresources
where ResourceObject like @ResourceObject and
ResourceName like '%' + @ResourceName + '%'

@ResourceObject 中的 sleshes 也可能存在问题。只需尝试使用参数的真实值执行 Select 并检查是否有一些数据返回

关于c# - 在存储过程中使用 LIKE 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22037867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com