First off, use AddWithValue - it makes it a lot clearer:
parameters.AddWithValue("@InvoiceNo", 0);
parameters.AddWithValue("@H",DropDownh.SelectedValue.ToString().Replace("'", "''"));
parameters.AddWithValue("@value", Double.Parse(txtvalue.Text.Trim()));
...
Then, don't convert DateTime to string:
parameters.AddWithValue("@InvoiceDatetime", DateTime.Now);
And assuming your database columns are right, it should all work ok.