Falha ao converter o valor do parâmetro de string para decimal (quando o campo está vazio)

Eu tenho um problema pela metade.
Agora o problema é que escrevi

Usando vb.net e mssql 2014 ent como back-end

Esta é minha consulta que escrevi

cmd = New SqlCommand(("insert into FAMPAR(Open_Bal, Curr_Bal, Disc_Perc, Stop_Days, Fix_Days) values(@Open_Bal , @Curr_Bal , @Disc_Perc , @Stop_Days ,@Fix_Days)"), con1)
            cmd.Parameters.Add("Open_Bal", SqlDbType.Decimal).Value = txtOpeningBal.Text
            cmd.Parameters.Add("Curr_Bal", SqlDbType.Decimal).Value = txtCurrBal.Text
            cmd.Parameters.Add("Disc_Perc", SqlDbType.Decimal).Value = txtDisc.Text
            cmd.Parameters.Add("Stop_Days", SqlDbType.Decimal).Value = txtStopDays.Text
            cmd.Parameters.Add("Fix_Days", SqlDbType.Decimal).Value = txtBillOutstdg.Text
ExecuteQuery1()

Agora tudo funciona bem quando escrevo em todos os campos no vbform, mas quando deixei um campo vazio, ele cria exceção.

SystemformatException: falha ao converter o valor do parâmetro de uma string para um decimal ...

Agora mostrasystemformatException então é erro no lado do sistema ou é erro sql side ... ???

E eu tenho que manter as caixas vazias algumas vezes e outras vezes preenchidas (não há problema quando as caixas de texto são preenchidas, a consulta é executada com êxito), então o que posso fazer com isso ???

questionAnswers(2)

yourAnswerToTheQuestion