我创建了一个c#windows登录表单,我将用户名或密码保存到文本文件中,但每当我使用相同的用户名或密码时,我在该文本文件中取消新位置之前已保存。
但我想要的是替换已保存在该文本文件中的相同用户名或密码。
这是我的代码:
private void button1_Click(object sender, EventArgs e)
{
try
{
FileStream fs = new FileStream("data.txt", FileMode.Append,
FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write("Email ID: ");
sw.WriteLine(textBox1.Text);
sw.Write("Password: ");
sw.Write(textBox2.Text);
sw.WriteLine();
sw.WriteLine();
sw.Flush();
sw.Close();
fs.Close();
}
catch (Exception)
{
MessageBox.Show("Error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Close();
}
MessageBox.Show("DONE", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information);
textBox1.Clear();
textBox2.Clear();
}
答案 0 :(得分:0)
您可以在文本文件中搜索用户名,如果存在,则可以编辑密码。 但你最好使用数据库:)
答案 1 :(得分:0)
首先搜索相同的用户名,即使用'File.ReadAllText'方法读取整个文件进行搜索,你可以通过比较用户名文本和文件文本进行搜索。
一旦你获得用户名,通过使用c#的内置函数计算或获取该用户名文本的位置,然后将你的写指针移动到用户名文本,&替换它。
答案 2 :(得分:0)
为什么要更换它?当你已经在文件中有它们时,什么都不做。我对你的代码做了一些修改。看看这个:
private void button1_Click(object sender, EventArgs e)
{
try
{
string file= File.ReadAllText("data.txt");
FileStream fs = new FileStream("data.txt", FileMode.Append,
FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
if(file.Contains(textBox1.Text+"\r\n"+textBox2.Text);
{
//Do nothing if you already have them in the file
}
else
{
sw.WriteLine("Email ID: "+textBox1.Text);
sw.Write("Password: "+textBox2.Text);
sw.WriteLine();
sw.WriteLine();
}
sw.Flush();
sw.Close();
fs.Close();
}
catch (Exception)
{
MessageBox.Show("Error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Close();
}
MessageBox.Show("DONE", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information);
textBox1.Clear();
textBox2.Clear();
}