c#页面一直在发送旧数据

本文关键字:数据 一直 | 更新日期: 2023-09-27 17:54:18

所以我有一个页面,用户给数据的应用程序发送到数据库。当用户点击下一步时,应用程序会导航到下一页。但是当用户返回并编辑数据时,应用程序仍然将第一次输入的旧数据保存到数据库中。

例如:

姓名:Jon Do

用户犯了一个错误,转到上一个页面el

姓名:John Doe

用户单击下一步,数据保存到数据库中。但是除了保存新数据"John Doe"外,它还发送旧数据"Jon Do"。当然,这不应该发生。我不知道为什么会这样。

这是我的c#代码的页面,用户应该给他/她的数据

private void btnNext_Click(object sender, RoutedEventArgs e)
    {
        if (ckbGegevens.IsChecked == false)
        {
            try
            { 
                dt.saveData = true;
                dt.bedrijfsNaam = txxBvName.Text;
                dt.contactPersoon = txxContPersn.Text;
                dt.telNummer = Convert.ToInt32(txxTelNr.Text);
                dt.eMail = txxEMail.Text;
                dt.land = txxLand.Text;
                dt.plaats = txxPlaats.Text;
                dt.postcode = txxPostCode.Text;
                postToJson.post("bvg");
                this.NavigationService.Navigate(new Doelen());
            }
            catch (Exception) 
            {
                MessageBox.Show("Er ontbreken gegevens!'nOf u heeft ongeldige gegevens ingevuld!");
            }
        }
        else
        {
            try {
                dt.bedrijfsNaam = txxBvName.Text;
                dt.contactPersoon = txxContPersn.Text;
                dt.telNummer = Convert.ToInt32(txxTelNr.Text);
                dt.eMail = txxEMail.Text;
                dt.land = txxLand.Text;
                dt.plaats = txxPlaats.Text;
                dt.postcode = txxPostCode.Text;
                dt.saveData = false;
                MessageBox.Show("Uw gegevens worden niet opgeslagen.'nVink voor optimaal gebruik deze functie aan.");
                this.NavigationService.Navigate(new Doelen());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }

这是我如何保存它到数据库:

 static string bedrijfsNaam = dt.bedrijfsNaam;
    static string ContPers = dt.contactPersoon;
    static int TelNum = dt.telNummer;
    static string email = dt.eMail;
    static string Land = dt.land;
    static string Plaats = dt.plaats;
    static string PostCode = dt.postcode;
    static string json;
    static string b64encode;
    public postToJson(string reqCat)
    {
    }
    public static void post(string reqCat)
    {
        if (reqCat == "bvg")
        {
            json = "{'"bedrijfsNaam'":'"" + bedrijfsNaam + "'"," +
                "'"ContPers'":'"" + ContPers + "'"," +
                "'"TelNum'":'"" + TelNum + "'"," +
                "'"email'":'"" + email + "'"," +
                "'"Land'":'"" + Land + "'"," +
                "'"Plaats'":'"" + Plaats + "'"," +
                "'"PostCode'":'"" + PostCode + "'"}";
            var b64bytes = System.Text.Encoding.UTF8.GetBytes(json);
            b64encode = System.Convert.ToBase64String(b64bytes);
            var data = new NameValueCollection();
            data["b64string"] = b64encode;
            data["filename"] = dt.bedrijfsNaam;
            using (WebClient client = new WebClient())
            {
                var sendB64 = client.UploadValues("http://" + ConfigurationManager.AppSettings["scripturi"].ToString() + "SalesKicker.php", "POST", data);
            }
        }
    }

问题不在PHP脚本中,所以我不必发布该脚本。我知道这一点是因为我打印出了JSON的结果。它总是有第一个输入的数据。谁能告诉我这是怎么回事?

c#页面一直在发送旧数据

赋值似乎是在静态类的声明中完成的,因此它们只会发生一次,您不知道何时发生。因此,你应该把它们放在一个单独的方法中:

static string bedrijfsNaam = dt.bedrijfsNaam;
static string ContPers = dt.contactPersoon;
static int TelNum = dt.telNummer;
static string email = dt.eMail;
static string Land = dt.land;
static string Plaats = dt.plaats;
static string PostCode = dt.postcode;

然后在post方法中调用那个方法。

private static void updateData() {
    bedrijfsNaam = dt.bedrijfsNaam;
    ContPers = dt.contactPersoon;
    TelNum = dt.telNummer;
    email = dt.eMail;
    Land = dt.land;
    Plaats = dt.plaats;
    PostCode = dt.postcode;
}
相关文章: