Aside from marc_s comment about named parameters and using "?" as place-holder, the table an column names having "-" as the name is IMO a really bad naming convention. It is like you are telling the system to subtract two values.
That said, it may be that you need to both change the insert values as "?" place holders and add them in same sequence (which you already have), but also may need to wrap your column names within brackets, tick marks, whatever, such as
insert into [info-ghrardad] (
[gh-note], [gh-tarikh], [gh-mablagh], [gh-shomareh], [gh-modat], [today-date] )
values( ?, ?, ?, ?, ?, ?)");
then your parameters...
Additionally your date field might be part of the crash if you are putting in as just text instead of an actual date or date/time data type value if that is what the actual structure has. Similarly if amounts should be numeric and you are grabbing simple text, make sure it is in proper expected format for the columns.
?as the placeholder in your SQL statement, and you can use just about any name for the parameter name - it only depends on the position of the parameters (the first one added matches the first question mark, the second parameter the second question mark and so on)