0

groupIDはチェックボックスの数です。UserIDのコンマ区切りリストを作成しようとしています。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);
    }

その結果、タイトルにエラーが発生します。

これを引き起こしている可能性がありますか?

4

1 に答える 1

2

明らかuserIDに、エラー行の は整数に変換できません。ブレーク ポイントを追加して、変数の実際の値を確認し、コードを変更できます。

ところで、より安全な方法で変換できます。お気に入り

int userIDInt;
if (int.TryParse(userID, out userIDInt))
{
    if (userIDInt == loggedID)
       // ...
}
else
    // handle the error
于 2012-03-21T01:27:42.100 に答える