-4

次のようなエラーが発生しました:

インデックスが範囲外でした。負ではなく、コレクションのサイズより小さくなければなりません。パラメータ名:インデックス

私のコードは、

int index = 0;
        GridViewRow gvrow;
        GridViewRow previousRow;
        if (e.CommandName == "Up")
        {
            index = Convert.ToInt32(e.CommandArgument);
            gvrow = GridView2.Rows[index];
            previousRow = GridView2.Rows[index - 1];
            int mobilePriority = Convert.ToInt32(GridView2.DataKeys[gvrow.RowIndex].Value.ToString());
            int mobileId = Convert.ToInt32(gvrow.Cells[0].Text);
            int previousId = Convert.ToInt32(previousRow.Cells[0].Text);
            con.Open();
            cmd = new SqlCommand("update AppointmentMaster set Priority='" + (mobilePriority - 1) + "' where AppointmentId='" + mobileId + "'; update AppointmentMaster set Priority='" + (mobilePriority) + "' where AppointmentId='" + previousId + "'", con);
            cmd.ExecuteNonQuery();
            con.Close();
        }    
4

1 に答える 1

1
previousRow = GridView2.Rows[index - 1];

(index - 1) は、index == 0 であるため、-1 になります。

于 2013-06-07T16:58:40.633 に答える