2011-05-16 9 views
0

다음 코드는 임의의 시간에 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, INotifyPropertyChangedvalidation를 사용 후 실행을 계속하기 때문이다

+0

자세히 알아보기, 제목을 업데이트해야합니다. 버튼 클릭으로 데이터가 손실되지 않습니다. 버그 코드 않습니다. –

답변

4

.

+0

글쎄, 문제는 메시지 상자를 처음부터 표시해서는 안된다는 것입니다. – korrowan

관련 문제