所以我使用註冊表單進行登錄應用程序,但我需要一些幫助。我想保存在我還挺能做到的,我創建了一個表格,我可以保存和載入1用戶XML使用savefiledialog XML的所有賬戶信息,這裏的代碼:將數據保存並加載到xml
XML類:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Xml.Serialization;
namespace Login_Form
{
public class xmlSave
{
public static void SaveData(object IClass, string filename)
{
StreamWriter writer = null;
try
{
XmlSerializer xml = new XmlSerializer((IClass.GetType()));
writer = new StreamWriter(filename);
xml.Serialize(writer, IClass);
}
finally
{
if (writer != null)
writer.Close();
writer = null;
}
}
}
public class xmlLoad<T>
{
public static Type type;
public xmlLoad()
{
type = typeof(T);
}
public T LoadData(string filename)
{
T result;
XmlSerializer xml = new XmlSerializer(type);
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
result = (T)xml.Deserialize(fs);
fs.Close();
return result;
}
}
}
,這裏是保存和加載代碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Xml.Serialization;
namespace Login_Form
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
saveFileDialog.InitialDirectory = @"C:\Users\Felix\Documents\visual studio 2013\Projects\Login Form\Login Form\bin\Debug";
saveFileDialog.Filter = "xml Files (*.xml)|*.xml";
saveFileDialog.FilterIndex = 2;
saveFileDialog.RestoreDirectory = true;
if(saveFileDialog.ShowDialog() == DialogResult.OK)
{
User user = new User();
user.FName = textBox1.Text;
user.LName = textBox2.Text;
user.Username = textBox3.Text;
user.Email = textBox4.Text;
user.Password = textBox5.Text;
xmlSave.SaveData(user, saveFileDialog.FileName);
}
}
private void Form1_Load(object sender, EventArgs e)
{
User user = new User();
xmlLoad<User> loadUser = new xmlLoad<User>();
user = loadUser.LoadData("test.xml");
textBox1.Text = user.FName;
textBox2.Text = user.LName;
textBox3.Text = user.Username;
textBox4.Text = user.Email;
textBox5.Text = user.Password;
}
}
public class User
{
private string fName;
private string lName;
private string username;
private string email;
private string password;
public string FName
{
get { return fName; }
set { fName = value; }
}
public string LName
{
get { return lName; }
set { lName = value; }
}
public string Username
{
get { return username; }
set { username = value; }
}
public string Email
{
get { return email; }
set { email = value; }
}
public string Password
{
get { return password; }
set { password = value; }
}
}
}
這讓我從5個文本框的信息保存到一個XML文件,但只有1個用戶,我想知道如何保存多個用戶,也如何將它用作登錄系統(沒有服務器,現在只有本地服務器),以及如何加載正確的信息e主應用程序,例如,如果im登錄到用戶1,我希望用戶信息displayd和其他用戶相同。我很抱歉,如果我解釋自己嚴重。
如果你想在一個XML文件中的所有數據,你會發現它更容易把每一個用戶到一個DataTable的一排並用它來讀寫XML文件:https://msdn.microsoft.com/en-us/library/78x6533x(v=vs.110).aspx –
請閱讀[MCVE]關於發佈代碼的指導。絕對沒有理由有大量的屬性/文本框/任何一個或兩個會顯示問題的樣本。在示例代碼中也使用自動屬性('public string Name {get; set}'),因爲它更緊湊(沒有人關心您的編碼標準,因爲某些原因可能需要完整版本的屬性)。 –