C# 更新按钮导致数据丢失!

C# 更新按钮导致数据丢失!,c#,winforms,tryparse,C#,Winforms,Tryparse,以下代码在看似随机的时间提示消息输入tryparse,然后使用空值或null值更新我的数据。无论是否将数据输入totaltaxtextbox和totalwatertextbox,都可能发生这种情况 private void button2_Click(object sender, EventArgs e) { string parcel = parcelNumberTextBox.Text; string premises = p

以下代码在看似随机的时间提示消息输入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;

    }
private void按钮2\u单击(对象发送者,事件参数e)
{
string parcel=parcelNumberTextBox.Text;
字符串premisesTextBox.Text;
字符串beg=assessedBegTextBox.Text;
字符串dim=assessedDimTextBox.Text;
string legal=legalTextBox.Text;
string notes=sumNotesTextBox.Text;
字符串taxf=taxFromTextBox.Text;
字符串taxt=taxToTextBox.Text;
字符串waterf=waterFromTextBox.Text;
字符串watert=waterToTextBox.Text;
string REDUCTAL=REDUCTALTEXTBOX.Text;
字符串taxline=totalTaxTextBox.Text;
字符串waterLien=totalWaterTextBox.Text;
字符串taxName=taxAcctNameTextBox.Text;
string registry=registryTextBox.Text;
十进制分类开放;
如果(!decimal.TryParse(taxOpenTextBox.Text,NumberStyles.Number | NumberStyles.AllowCurrencySymbol,
NumberFormatInfo.CurrentInfo,out taxOpen)
MessageBox.Show(“请在税务打开文本框中输入有效数字”);
十进制水封;
如果(!decimal.TryParse(waterOpenTextBox.Text,NumberStyles.Number | NumberStyles.AllowCurrencySymbol,
NumberFormatInfo.CurrentInfo,out waterOpen)
MessageBox.Show(“请在“打开水”文本框中输入有效数字”);
DataClasses1DataContext db=新DataClasses1DataContext();
var matchedCaseNumber=(来自db.GetTable()中的c)
其中c.CaseNumberKey==casenumberkytextbox.Text
选择c.SingleOrDefault();
matchedCaseNumber.AssessedBeg=beg;
matchedCaseNumber.AssessedDim=dim;
匹配的案例编号。前提=前提;
matchedCaseNumber.Legal=Legal;
matchedCaseNumber.SumNotes=注释;
matchedCaseNumber.ParcelNumber=地块;
matchedCaseNumber.TaxFrom=taxf;
matchedCaseNumber.TaxTo=taxtt;
matchedCaseNumber.WaterFrom=Water;
matchedCaseNumber.WaterTo=watert;
matchedCaseNumber.TaxOpen=TaxOpen;
matchedCaseNumber.WaterOpen=WaterOpen;
匹配的案例编号。朗诵=朗诵;
matchedCaseNumber.TotalTax=税收;
matchedCaseNumber.TotalWater=waterLien;
matchedCaseNumber.Registry=注册表;
matchedCaseNumber.TaxAcctName=taxName;
matchedCaseNumber.TaxOpen=TaxOpen;
matchedCaseNumber.WaterOpen=WaterOpen;
db.SubmitChanges();
脏=假;
}
任何关于如何解决这个问题的帮助都将是巨大的


谢谢

这是因为您的代码只是在显示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;   // <--------------
}
如果(!decimal.TryParse(taxOpenTextBox.Text,NumberStyles.Number | NumberStyles.AllowCurrencySymbol,
NumberFormatInfo.CurrentInfo,out taxOpen)
{
MessageBox.Show(“请在税务打开文本框中输入有效数字”);

return;//这是因为代码在显示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;   // <--------------
}
如果(!decimal.TryParse(taxOpenTextBox.Text,NumberStyles.Number | NumberStyles.AllowCurrencySymbol,
NumberFormatInfo.CurrentInfo,out taxOpen)
{
MessageBox.Show(“请在税务打开文本框中输入有效数字”);

return;//顺便说一句,你应该更新你的标题;按钮点击不会导致数据丢失;错误代码会。顺便说一句,你应该更新你的标题;按钮点击不会导致数据丢失;错误代码会。问题是它不应该首先显示messagebox。问题是它不应该在中显示messagebox第一位。