我在登錄頁面中有兩個實例,具體取決於作爲vat(從下面的存儲過程返回的變量)返回的內容,當我在服務器上執行存儲過程時,結果爲INTERNAL
,但在登錄頁面上執行else
上的條件而不是INTERNAL
。存儲過程和返回變量的值不同
string usertype = u.ViewUserType((int)Session["Id"]);
string vattype = u.ViewUserVat((string)Session["Code"]);
if (usertype == "Client")
{
if (vattype == "INTERNAL")
{
Response.Redirect("~/NonIFAClient/");
}
else
{
Response.Redirect("~/Client/");
}
}
public string ViewUserVat(string code)
{
CamOnlineAccess.Utilities u = new CamOnlineAccess.Utilities();
SqlCommand c = u.GetCommandSP("dbo.ViewUserVat");
c.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] {
new System.Data.SqlClient.SqlParameter("@code",System.Data.SqlDbType.VarChar,50),
new System.Data.SqlClient.SqlParameter("@vat",SqlDbType.VarChar, 50, System.Data.ParameterDirection.Output, false, ((byte)(0)), ((byte)(0)), "", System.Data.DataRowVersion.Current, null)});
c.Parameters["@code"].Value = code;
c.Connection.Open();
c.ExecuteScalar(); // because we have output parameters
c.Connection.Close();
return (string)c.Parameters["@vat"].Value;
}
存儲過程:
ALTER PROCEDURE [dbo].[ViewUserVat]
-- Add the parameters for the stored procedure here
@code varchar,
@vat varchar(50) output
AS
SELECT
TOP 1 @vat = vattable
FROM
dbo.portfolio
WHERE
owner = @code
您未提供的顯而易見的信息是當您進行比較時'vattype'的值是多少?另一個想法是區分大小寫是否是一個問題。 – Chris
你以前用過linq嗎? – CR41G14
它出錯了?存儲過程是否返回錯誤的值? SqlCommand是否返回錯誤的值?預期的價值無處不在,但仍然是錯誤的分支? –