将字符串值转换为整型
本文关键字:整型 转换 字符串 | 更新日期: 2023-09-27 18:15:55
if (!IsPostBack)
{
string EnquiryID = (Session["Enq_ID"].ToString());
if (EnquiryID != null)
{
int Enquiry = Convert.ToInt32(EnquiryID);
hotelOBJ.FillbyQueryEnquiry1(Enquiry, txtClientph, txtClientAddress );
}
}
有我的代码,我的会话没有转换成整数,错误是
"输入字符串格式不正确。"
错误提示可能有一些字符在任何情况下都不能转换为整数,例如1234ab
包含不能转换为整数的字符ab
你可以做的是:
bool result = Int32.TryParse(Session["Enq_ID"].ToString(), out number);
if (result)
{
hotelOBJ.FillbyQueryEnquiry1(number, txtClientph, txtClientAddress );
}
else
{
Console.WriteLine("Attempted conversion of '{0}' failed.",
Session["Enq_ID"].ToString());
}
我认为你试图转换为int的字符串是空的,或者它包含的字符不是数字(基本上你的字符串不代表字符串形式的整数值)。这就是为什么你会得到错误信息。
所以至少你得把
if (EnquiryID != null)
if(!string.IsNullOrWhiteSpace(EnquiryID))
这样你就会知道如果你想转换变量它至少有东西可以转换
和或使用Int32.TryParse()
函数来测试(并转换为整数),如果你试图转换的字符串是整数
使用Int32.Parse()。解析时要注意FormatException,最好先使用TryParse或将TryParse包装在扩展方法中。也改变你的if语句。如果您的查询字符串参数缺失,您现在使用它的方式可能导致NullReferenceException。
if (!IsPostBack)
{
if (Session["Enq_ID"] != null)
{
string EnquiryID = Session["Enq_ID"].ToString();
if (EnquiryID.IsValidInt32())
{
int Enquiry =Int32.Parse(EnquiryID);
hotelOBJ.FillbyQueryEnquiry1(Enquiry, txtClientph, txtClientAddress );
}
}
}
扩展方法……
public static bool IsValidInt32(this string value)
{
int result;
return int.TryParse(value, out result);
}