Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以C夏普格式保存和重新加载数据_C#_Form Submit_Visual Studio Sdk - Fatal编程技术网

C# 以C夏普格式保存和重新加载数据

C# 以C夏普格式保存和重新加载数据,c#,form-submit,visual-studio-sdk,C#,Form Submit,Visual Studio Sdk,我正在寻找解决方案来保存和重新加载我在文本框中输入的内容或我在组合框中填写的内容。这是我目前拥有的代码,但我不是100%确定它都是正确的。我只是发布我需要帮助的代码。如果您需要整批代码,我可以发布它,但我不认为它与我要求的内容相关。这就是我到目前为止所做的,我不确定它是否真的会保存输入的信息,我完全不确定在loadLastBtn方法中放什么。我只是希望它被保存到内存中,即使文本框文本已经改变,然后我希望能够从内存中检索,当我点击loatLastbtn private void submi

我正在寻找解决方案来保存和重新加载我在文本框中输入的内容或我在组合框中填写的内容。这是我目前拥有的代码,但我不是100%确定它都是正确的。我只是发布我需要帮助的代码。如果您需要整批代码,我可以发布它,但我不认为它与我要求的内容相关。这就是我到目前为止所做的,我不确定它是否真的会保存输入的信息,我完全不确定在loadLastBtn方法中放什么。我只是希望它被保存到内存中,即使文本框文本已经改变,然后我希望能够从内存中检索,当我点击loatLastbtn

    private void submitBtn_Click(object sender, EventArgs e)
    {
        List<Members> lstMembers = new List<Members>();
        if (string.IsNullOrEmpty(firstNameTxt.Text) || string.IsNullOrEmpty(lastNameTxt.Text)
           || string.IsNullOrEmpty(userNameTxt.Text) ||
           string.IsNullOrEmpty(passwordTxt.Text) || string.IsNullOrEmpty(confPassTxt.Text)
           || string.IsNullOrEmpty(majorBox.Text) || string.IsNullOrEmpty(specialtyBox.Text))
        {
            MessageBox.Show("You must enter in all fields before moving forward");
        }
        else
        {
            //would this save my data to the array and how can I reload this?
            Members m1 = new Members(firstNameTxt.Text, lastNameTxt.Text, userNameTxt.Text,
                                        passwordTxt.Text, confPassTxt.Text, majorBox.Text,
                                        specialtyBox.Text);
            lstMembers.Add(m1);
        }
    }
   private void loadLastBtn_Click(object sender, EventArgs e)
    {
          for(int i = 0; i < lstMembers.Count; i++)
        {
            firstNameTxt.Text = lstMembers[i].FirstName;
            lastNameTxt.Text = lstMembers[i].LastName;
            userNameTxt.Text = lstMembers[i].UserName;
            passwordTxt.Text = lstMembers[i].Password;
            confPassTxt.Text = lstMembers[i].ConfPassword;
            majorBox.Text = lstMembers[i].Major;
            specialtyBox.Text = lstMembers[i].Specialty;
        }
    }

在没有任何硬实现的情况下,最常用的方法是用“;”来编写所有变量在它们之间的一个文件中。然后从文件中读取它,并在用户按下按钮时将其重新分配到表单元素中。有关如何写入文件,请参阅本指南:

我将给出一个简单的例子:

例如,我的表单由用户名和密码文本字段组成。在用户输入它们并按下login键后,我将它们保存到文件中,以便用户下次登录时使用,此方法将保存它

public void save(){
String username = txtUsername.Text;
String password = txtPassword.Text;
File.WriteAllText(path, username + ";" + password);
}

public void load(){
String parameters = File.ReadAllText(path);
String[] splitted = parameters.split(';');
txtUsername.Text = splitted[0];
txtPassword.Text = splitted[1];
}

我建议创建一个“POCO”普通的旧c对象或结构来保存您的数据。 当您想保存它时,只需更多地使用MS Serialization或更多地使用JSON Serialization方法将其序列化到磁盘。
这样,您就不用担心用户可能输入了什么,也不用担心清理数据和确保他没有使用您的转义符。

保存信息是什么意思。是否要将其存储在文件系统中。或者即使文本框文本已更改,仍将其保留在内存中?保存到哪里?到磁盘还是内存?无论目标是什么,字符串数组的作用域都是click事件,在该方法完成执行后,它将不可用。如果您能告诉我们要保存数据的存储,我们可以提供帮助。对于磁盘,您可以使用应用程序数据选项将数据保存在appdata文件夹下,该文件夹将为您的阵列分配值是的,但是如何定义保存和加载?您希望将其写入/读取文本文件还是数据库?或者只是通过提交和加载按钮在控件之间传递数据?如果您想要最后一个,只需在submitBtn_Click事件的范围外定义字符串[]s1,以便loadLastBtn_Click也可以访问该字符串,然后只需执行firstNameTxt.Text=s1[0];我很抱歉没有说得更清楚。我只想把它保存到内存中,即使文本框的文本已经改变了。我不确定如何做到这一点,然后能够检索到的数据@Jamesblond您可以使用列表创建字符串[]的列表。列表与数组非常相似,只是它们的长度是动态的。您只需调用myList。添加并传递一个新字符串[]。然后,您可以在Load中迭代该数组集合以获取所有数据。但在这一点上,听起来你应该考虑把这个信息分解成一个我猜想的班级学生。并维护一个列表或任何你的类的名称。
public void save(){
String username = txtUsername.Text;
String password = txtPassword.Text;
File.WriteAllText(path, username + ";" + password);
}

public void load(){
String parameters = File.ReadAllText(path);
String[] splitted = parameters.split(';');
txtUsername.Text = splitted[0];
txtPassword.Text = splitted[1];
}