【发布时间】:2014-05-13 16:17:14
【问题描述】:
我正在开发一个 ASP.NET 网站,但偶然发现了一个问题。我一直在将 ASP.NET 论坛转换为 ASP.NET 4.5。我已经修复了所有问题,并且该网站在我的本地开发机器上运行得非常好。将其上传到我的网络主机后,我会收到以下错误。
“/”应用程序中的服务器错误。
指定的转换无效。
我一直在试图弄清楚,但我很难过。这是代码、SQL表和存储过程。
public static int GetWebIDAndFolder(string host, out string folder)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CrzyForumConnectionString"].ConnectionString);
SqlCommand cmd = new SqlCommand("CWF_GetWebIDAndFolder", conn);
host = host.Replace("www.", "");
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@WebDomain", SqlDbType.NVarChar, 50);
cmd.Parameters.Add("@WebID", SqlDbType.Int, 4);
cmd.Parameters.Add("@Folder", SqlDbType.NVarChar, 50);
cmd.Parameters[0].Value = host;
cmd.Parameters[1].Direction = ParameterDirection.Output;
cmd.Parameters[2].Direction = ParameterDirection.Output;
conn.Open();
cmd.ExecuteNonQuery();
int webID = (int)cmd.Parameters[1].Value;
if (Convert.IsDBNull(cmd.Parameters[2].Value))
folder = string.Empty;
else
folder = (string)cmd.Parameters[2].Value;
conn.Close();
return webID;
}
SQL 表:
CREATE TABLE [dbo].[CWF_Webs] (
[WebDomain] NVARCHAR (50) COLLATE Latin1_General_CI_AS NOT NULL,
[WebID] INT NOT NULL,
[Folder] NVARCHAR (50) COLLATE Latin1_General_CI_AS NULL
);
存储过程
CREATE PROCEDURE [indie_world].CWF_GetWebIDAndFolder
(
@WebDomain nvarchar(50),
@WebID int OUTPUT,
@Folder nvarchar(50) OUTPUT
)
AS
SELECT @WebID = (SELECT WebID FROM CWF_Webs WHERE WebDomain = @WebDomain)
SELECT @Folder = (SELECT Folder FROM CWF_Webs WHERE WebDomain = @WebDomain)
我们将不胜感激任何和所有帮助。代码、表格和过程均来自该项目来自以下网址。 http://www.codeproject.com/Articles/4291/Riverside-Internet-Forums。它是我正在转换为基于简单论坛并开始扩展它的应用程序。
【问题讨论】:
-
哪一行报错了?
-
其实不是一个坏问题,但这是一个很好的例子,说明为什么缩小问题范围很重要。
标签: c# asp.net sql sql-server stored-procedures