My transaction says sent, but it never showed up.

This happens when your transaction was rejected by the rest of the network. To know for sure if it was rejected by the network, you can search Dashcoin's block explorer on Minergate for the transaction id. If it does not show up, then it was rejected. Your coins are not lost, however, and can be recovered by waiting 24 hours, and then running the "reset" command in simplewallet.

What is a payment id?

Due to Dashcoin's anonymous structure, it is not possible for exchanges to identify who made a deposit. To solve this, payment ids are used. An exchange can give you a unique payment id, which you include in a transaction with the -p parameter. This allows the exchange to identify who sent them the deposit.

I forgot to include my payment id when sending a deposit to an exchange

Email support for whichever exchange you sent the coins to. Include the transaction id in the email. If you do not know the transaction id, you can check simplewallet.log or you can search through the blockchain explorer around the time you sent the transaction for the transaction.