ara*_*o b 0 c# asp.net iis visual-studio-2012
我在Visual Studio 2012中编写了一种登录方法。登录代码为:
public DataSet Login(string UserName, string Password)
{
DataSet Message = new DataSet();
Tbl_Users User = new Tbl_Users();
string ClientIP = Context.Request.ServerVariables["REMOTE_ADDR"];
DataSet result = User.Login(UserName, Password, ClientIP);
if (Int16.Parse(result.Tables[0].Rows[0][0].ToString()) < 0)
{
DataTable dt = Message.Tables.Add("results");
dt.Columns.Add("status");
dt.Columns.Add("results");
DataRow row = dt.NewRow();
row[0] = "-1";
row[1] = ErrorFinder.SQlErrorHandeling(Int32.Parse(result.Tables[0].Rows[0][0].ToString()));
dt.Rows.Add(row);
}
else
Message = result;
return Message;
}
Run Code Online (Sandbox Code Playgroud)
当我在视觉工作室执行它时,一切都很好。但是,当我通过Visual Studio发布网站并将其放到Windows 7 iis中时,出现此错误:
System.OverflowException: Value was either too large or too small for an Int16.
at System.Int16.Parse(String s, NumberStyles style, NumberFormatInfo info)
at Service.Login(String UserName, String Password)
Run Code Online (Sandbox Code Playgroud)
我不知道发布的网站出了什么问题?
小智 5
我怀疑其中result.Tables[0].Rows[0][0].ToString()包含Int16可以容纳的更大的值。所有类型的整数都有以下不同的存储容量范围:
Int 16 -- (-32768 to +32767)
Int 32 -- (-2,147,483684 to +2,147,483683)
Int 64 -- (-9223372036854775808 to +9223372036854775807)
Run Code Online (Sandbox Code Playgroud)