文本框为空时抛出异常

时间:2021-02-26 18:46:25

标签: c# winforms

我有两个需要将数值发送到 SQL 表的文本框。发送到 SQL 表时,文本值可以正常工作。验证工作是否为框中的数值,但是当框为空时会引发异常

            private void AddPatient_Click(object sender, EventArgs e)
    {
        using (MedToxDatabaseEntities1 db = new MedToxDatabaseEntities1())
        {
            MedToxDatabaseSP.Patient patient = new Patient();

       // **** Patient Section of the main dashboard *****

            patient.EncounterDate = DateConsult.Value;
            patient.FirstName = TxbFirstName.Text;
            patient.LastName = TxbLastName.Text;
            patient.DOB = DOB.Value;
            string MRN = TxbMRN.Text;
            patient.PatientMedicalRecordNumber = decimal.Parse(MRN);
            patient.ExposureName = CboExposure.Text;
            patient.InstitutionName = CboHospital.Text;
            patient.LocationName = CboHospitalLocation.Text;
            string Redcap = TxbRedCapNumber.Text;
            patient.RedcapNumber = decimal.Parse(Redcap);

2 个答案:

答案 0 :(得分:0)

您将用户生成的数据解析为十进制类型,前提是它始终正确。这绝不是一个好主意。

patient.RedcapNumber = decimal.Parse(Redcap);

应该

if (decimal.TryParse(Redcap, patient.RedcapNumber) == false) {
  throw new Exception("Invalid decimal number entered");
}

答案 1 :(得分:0)

你可以使用其中之一

decimal PatientMedicalRecordNumber = decimal.Parse("0" + MRN);

decimal PatientMedicalRecordNumber = decimal.Parse((MRN=="")?"0":MRN);

decimal PatientMedicalRecordNumber=0;
decimal.TryParse(MRN, out PatientMedicalRecordNumber);
相关问题