将字符串值转换为整型

本文关键字:整型 转换 字符串 | 更新日期: 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);
 }