Msgstr "Входная строка была в неправильном формате."C # - PullRequest
0 голосов
/ 21 марта 2012

groupID - это количество флажков. Я пытаюсь создать список идентификаторов пользователей через запятую. GroupID идентифицирует группу с количеством пользователей в качестве участника. Итак, у меня есть:

      string groupIds = Request.Form["groupID"];
        if (groupIds!=null){
            string[] arrayOfGroupIds = groupIds.Split(','); //possible error here if only one checkbox is ticked?
            foreach (string id in arrayOfGroupIds){
                var users = db.Query("SELECT guestID FROM userGroups WHERE id = @0", id);
                foreach(var user in users){
                    userIds += user.guestID + ",";
                }
            }
        }   
        userIds += Request.Form["userId"] + "," + yourID;

На следующей странице я звоню:

string userIDs = Request.Form["userIDs"];
string[] userIdsArray = userIDs.Split(',');
foreach(string userID in userIdsArray){
if(Convert.ToInt32(userID) == loggedID) { //ERROR HERE
        db.Execute("INSERT INTO Membership(GroupId,UserId) VALUES (@0, @1)", groupID, userID);
    }

Что приводит к ошибке в заголовке.

Что может быть причиной этого?

1 Ответ

2 голосов
/ 21 марта 2012

Очевидно, что userID в строке ошибки не может быть преобразовано в целое число. Вы можете добавить точку останова и посмотреть, какое значение на самом деле представляет переменная, а затем изменить свой код.

Кстати, вы можете конвертировать в более безопасный способ. Как

int userIDInt;
if (int.TryParse(userID, out userIDInt))
{
    if (userIDInt == loggedID)
       // ...
}
else
    // handle the error
...