我有一个网站,可以读取数据库中的多个表格。我可以显示数据,更新数据,通常我可以使用数据库,除了一个表。因为我可以读取其他表,所以它不能成为连接字符串。
完整的内部例外是......
超时已过期。在获得a之前经过了超时时间 从游泳池连接。这可能是因为所有人都集中了 正在使用连接并达到最大池大小。
使用标量值函数引用该表。
USE [DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[User_LogoRelativeUrl]
(
@userId int
)
RETURNS nvarchar(MAX)
AS
BEGIN
DECLARE @result nvarchar(MAX)
SELECT TOP 1
@result = RelativeUrl
FROM Media
WHERE UserId = @userId AND TypeId = 206
RETURN ISNULL(@result, '')
END
GO
更新:这是主叫代码......
[global::System.Data.Linq.Mapping.FunctionAttribute (Name="dbo.User_LogoRelativeUrl", IsComposable=true)]
public string User_LogoRelativeUrl([global::System.Data.Linq.Mapping.ParameterAttribute(DbType="Int")] System.Nullable<int> userId)
{
return ((string)(this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), userId).ReturnValue));
}
这是调用上面代码的代码......
public static string GetLogoRelativeUrl(int userId)
{
OnlineDataContext context = new OnlineDataContext();
return context.User_LogoRelativeUrl(userId);
}
这是调用上面一个的方法......
public static string GetLogoDoctor(int DoctorId)
{
string relativeUrl = string.Empty;
relativeUrl = UserController.GetLogoRelativeUrl(DoctorId);
MediaStatus status = MediaStatus.Unknown;
string ImageUrl = string.Empty;
if (!string.IsNullOrEmpty(relativeUrl))
status = UserController.GetLogoStatus(DoctorId);
if (string.IsNullOrEmpty(relativeUrl))
{
ImageUrl = "https://www.test.com/phh/images/logo.png";
}
else
{
ImageUrl = status == MediaStatus.Live ? Rei.TestOnline.Web.SiteUtility.CombineUrl(AppSettings.GetMediaSiteUrl(), relativeUrl) : "https://www.test.com/phh/images/logo.png";
}
return ImageUrl;
}
更新:我评论了这一行,一切正常,除了我当然没有得到徽标......
relativeUrl = UserController.GetLogoRelativeUrl(DoctorId);
我已使用Management Studio
手动执行此功能,使用与连接字符串相同的符号,并且没有任何问题。
什么可能导致超时?