Isnt the order of these wrong ?
string sql = "INSERT INTO [transaction] (Dea_Cust_id, Grandtotal,transaction_date, tax, discount) VALUES (@Dea_Cust_id,@transaction_date, @Grandtotal, @tax, @discount);
... should it not be
string sql = "INSERT INTO [transaction] (Dea_Cust_id, Grandtotal,transaction_date, tax, discount) VALUES (@Dea_Cust_id,@Grandtotal, @transaction_date, @tax, @discount);