You don't really need the JOINs here, as you just want to delete the rows with specific value:
DELETE FROM Ghesting WHERE fk_code_m_buyer = ?
But you need to supply the parameter: this is the problem that is stated, you did not provide the required parameter.
Maybe:
yourCommandObject.Parameters.AddWithValue("fk_code_m_buyer", yourValue);
should do it.
[EDIT] Solution with the correct example [/EDIT]
DELETE FROM Ghesting INNER JOIN buyer ON buyer.code_m_buyer = Ghesting.fk_code_m_buyer INNER JOIN kala ON kala.buyer_codem = buyer.code_m_buyer WHERE fk_code_mbuyer = ? AND kala.serial_kala = ?
You still have to provide both parameters when executing the query, though.
As a general advise, you really should normalize the way you are naming your columns, that would make your queries less complicated, more readable, and less prone to typos.
And, second one, when you post a question, please be carefull to give all the relevant and exact details the first time; it will prevent us from wasting our time :)
Kindly.