【发布时间】:2012-09-18 03:22:21
【问题描述】:
在加载时调用函数并且错误指向它。仅在发布时调试时,我没有得到索引超出范围错误。
{
string strLogonUser = Request.ServerVariables["LOGON_USER"];
var credential = strLogonUser.Split(@"\".ToCharArray())[1];
cnn.Open();
SqlTransaction tran = cnn.BeginTransaction();
cmd.Connection = cnn;
cmd.Transaction = tran;
cmd.CommandText = "StoredProcedure";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@UserLogin", SqlDbType.NVarChar).Value = credential;
cmd.ExecuteNonQuery();
}
[IndexOutOfRangeException: Index was outside the bounds of the array.]
_Default.ReadUser() +357
_Default.Page_Load(Object sender, EventArgs e) +46
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42
System.Web.UI.Control.OnLoad(EventArgs e) +132
System.Web.UI.Control.LoadRecursive() +66
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428
【问题讨论】:
-
在调试时 LOGON_USER 是否不同?更具体地说,另一个不包含'\'吗?
-
您为什么不检查一下是否有一个“\”,我还建议将该代码放在 Try{}Catch{} 周围 \