您好我在.net Web应用程序中执行了以下存储过程。然后运行该应用程序。我收到了这个错误
“除以零错误”
存储过程:
CREATE procedure Details(@Stringtext varchar(8000),@SearchStringtext varchar(100))
as begin
SELECT ({fn LENGTH(@Stringtext)}-
{fn LENGTH({fn REPLACE(@Stringtext, @SearchStringtext, '')})})/
{ fn LENGTH(@SearchStringtext)}AS String_Count
end
答案 0 :(得分:3)
显然:
{ fn LENGTH(@SearchStringtext)}
......评估为零。
答案 1 :(得分:1)
如果SearchStringtext为空,则它的长度变为0.因此存储过程尝试除以零(这是undefined thing to do)。
换句话说,以下部分变为零:
{ fn LENGTH(@SearchStringtext)}
如果SearchStringtext为空,您可能需要添加一些逻辑(可能是if语句)以防止发生除法。
答案 2 :(得分:1)
SearchStringText的长度为零,因此有零除错误。 确保在调用函数时,字符串的长度不为零。 或者在选择之前检查长度
答案 3 :(得分:1)
{ fn LENGTH(@SearchStringtext)}
正在评估为0。
但是,为什么这是一个存储过程?您没有使用任何数据库功能?除非这是一个简化的问题,所有这些(长度,替换等)都可以在.net应用程序中完成
答案 4 :(得分:1)
此过程中唯一的除法操作, fn LENGTH(@SearchStringtext)
作为除数。
因此,**SearchStringtext**
的长度似乎正在评估为零。您可能正在尝试搜索空字符串。
请检查并详细说明问题详情以及数据库平台。
答案 5 :(得分:0)
似乎SearchStringtext的长度为0 - 因此过程会尝试除以零。