我有两个需要将数值发送到 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);
答案 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);