I want to know why error control is used in transport layer although it is used in data link layer?While data link layer has all data came from upper layers in its frames so its error control should be sufficient.
There are many types of error controls. The link layer error control that you are referring to is probably to do with ensuring that no bits were flipped in transit i.e. safe guarding against data corruption.
The error control in the transport layer usually refers to the guaranteed delivery mechanism with TCP, which attempts to safe guard against frames/packets getting lost entirely.