开发者

Update button causing lost data!

The following code at seemingly random times prompts the message for tryparse and then updates my data with either empty or null values. This can occur with data input into the totaltaxtextbox and totalwatertextbox or not.

    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;

    }

Any help on how to solve this issue would be great.

Thanks!


That's because your code simply continues execution after displaying a 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;   // <--------------
}

BTW, a nicer way to handle this is using an errorProvider, INotifyPropertyChanged and validation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜