krishna moorthy Ответов: 3

Как правильно входную строку на int идентификатор = конвертировать.toint32(сеанс["идентификатор"]);


protected void Page_Load(object sender, EventArgs e)
        {
                if(!IsPostBack)
            {
                if(Session["Id"]!=null)
                {
                    int id = Convert.ToInt32(Session["Id"]);
                    GetStudentDataById(id);
                }
            }


Что я уже пробовал:

Я пробовал работать со строкой, но все равно она показывает, что " входная строка была не в правильной форме"

3 Ответов

Рейтинг:
2

Karthik_Mahalingam

Всегда использовать Типа int32.Метод tryparse [^] чтобы привести строку к целому числу

protected void Page_Load(object sender, EventArgs e)
       {
           if (!IsPostBack)
           {
               if (Session["Id"] != null)
               {
                   int id;
                   if (int.TryParse(Session["Id"].ToString(), out id))
                       GetStudentDataById(id); // id is a valid number
                   else
                   {
                        // id is not a number.
                       // your code to validate, saying the id is invalid
                   }
               }
           }


       }


Рейтинг:
1

F-ES Sitecore

Он должен быть конвертирован в int, я думаю, что это довольно самоочевидно? "123"-это хорошо, "Hello world" - это плохо. Если бы вы сказали нам, что было в сеансе ["Id"], мы могли бы объяснить, почему он не работает.

Как бы то ни было, используйте int.TryParse при преобразовании строк в целые числа, так как он позволяет изящно обрабатывать ошибки. Google для использования синтаксиса.


Рейтинг:
1

deepankarbhatnagar

Пожалуйста, попробуйте этот код,


protected void Page_Load(object sender, EventArgs e)
        {
                if(!IsPostBack)
            {
                if(Session["Id"]!=null)
                {
                    int id = Convert.ToInt32(Session["Id"].ToString());
                    GetStudentDataById(id);
                }
            }