Error al convertir el valor del parámetro de cadena a decimal (cuando el campo está vacío)

Tengo un problema que está a medias.
Ahora el problema es que escribí

Uso de vb.net y mssql 2014 ent como backend

Esta es mi consulta que escribí

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()

Ahora todo funciona bien cuando escribo en cada campo en vbform pero cuando dejo un campo vacío, crea una excepción.

SystemformatException: no se pudo convertir el valor del parámetro de una cadena a un decimal ...

Ahora se notasystemformatException Entonces, ¿es un error en el lado del sistema o es un error en el lado sql ... ???

Y tengo que mantener los cuadros vacíos a veces y a veces llenos (no hay problema cuando los cuadros de texto están llenos, la consulta se ejecuta con éxito), entonces, ¿qué puedo hacer con esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta