다음 코드는 임의의 시간에 tryparse에 대한 메시지를 표시 한 다음 내 데이터를 빈 값이나 Null 값으로 업데이트합니다. 이것은 totaltaxtextbox 및 totalwatertextbox에 입력 된 데이터와 함께 발생할 수 있습니다.버튼을 누르면 데이터가 손실됩니다!
private void button2_Click(object sender, EventArgs e)
{
string parcel = parcelNumberTextBox.Text;
string premises = premisesTextBox.Text;
string beg = assessedBegTextBox.Text;
string dim = assessedDimTextBox.Text;
string legal = legalTextBox.Text;
string notes = sumNotesTextBox.Text;
string taxf = taxFromTextBox.Text;
string taxt = taxToTextBox.Text;
string waterf = waterFromTextBox.Text;
string watert = waterToTextBox.Text;
string recital = recitalTextBox.Text;
string taxLien = totalTaxTextBox.Text;
string waterLien = totalWaterTextBox.Text;
string taxName = taxAcctNameTextBox.Text;
string registry = registryTextBox.Text;
decimal taxOpen;
if (!decimal.TryParse(taxOpenTextBox.Text, NumberStyles.Number | NumberStyles.AllowCurrencySymbol,
NumberFormatInfo.CurrentInfo, out taxOpen))
MessageBox.Show("Please enter a valid number in the Tax Open Text Box");
decimal waterOpen;
if (!decimal.TryParse(waterOpenTextBox.Text, NumberStyles.Number | NumberStyles.AllowCurrencySymbol,
NumberFormatInfo.CurrentInfo, out waterOpen))
MessageBox.Show("Please enter a valid number in the Water Open Text Box");
DataClasses1DataContext db = new DataClasses1DataContext();
var matchedCaseNumber = (from c in db.GetTable<PropertyInformation>()
where c.CaseNumberKey == caseNumberKeyTextBox.Text
select c).SingleOrDefault();
matchedCaseNumber.AssessedBeg = beg;
matchedCaseNumber.AssessedDim = dim;
matchedCaseNumber.Premises = premises;
matchedCaseNumber.Legal = legal;
matchedCaseNumber.SumNotes = notes;
matchedCaseNumber.ParcelNumber = parcel;
matchedCaseNumber.TaxFrom = taxf;
matchedCaseNumber.TaxTo = taxt;
matchedCaseNumber.WaterFrom = waterf;
matchedCaseNumber.WaterTo = watert;
matchedCaseNumber.TaxOpen = taxOpen;
matchedCaseNumber.WaterOpen = waterOpen;
matchedCaseNumber.Recital = recital;
matchedCaseNumber.TotalTax = taxLien;
matchedCaseNumber.TotalWater = waterLien;
matchedCaseNumber.Registry = registry;
matchedCaseNumber.TaxAcctName = taxName;
matchedCaseNumber.TaxOpen = taxOpen;
matchedCaseNumber.WaterOpen = waterOpen;
db.SubmitChanges();
Dirty = false;
}
이 문제를 해결하는 방법에 대한 도움이 될 것입니다.
감사합니다. 코드는 단순히 BTW MessageBox에
if (!decimal.TryParse(taxOpenTextBox.Text, NumberStyles.Number | NumberStyles.AllowCurrencySymbol,
NumberFormatInfo.CurrentInfo, out taxOpen))
{
MessageBox.Show("Please enter a valid number in the Tax Open Text Box");
return; // <--------------
}
를 표시,이 처리하는 더 좋은 방법이 errorProvider
, INotifyPropertyChanged
및 validation
를 사용 후 실행을 계속하기 때문이다
자세히 알아보기, 제목을 업데이트해야합니다. 버튼 클릭으로 데이터가 손실되지 않습니다. 버그 코드 않습니다. –