【发布时间】:2016-08-21 22:46:30
【问题描述】:
我正在尝试替换 csv 文件中的特定数据字段,但遇到了问题。
我的 csv 文件结构如下:
user, password, role, id,
1, abc, 2, 3
2, def, 2, 4
3, ghi, 5, 5
我可以很好地读取文件,但是当我想使用 Windows 窗体中的文本框和按钮替换密码时,我遇到了问题。
private void resetBtn_Click(object sender, EventArgs e)
{
var encoding = Encoding.GetEncoding("iso-8859-1");
var csvLines = File.ReadAllLines("C:\\Users\\hughesa3\\Desktop\\test environment\\users.csv", encoding);
foreach (var line in csvLines)
{
var values = line.Split(',');
if (values[0].Contains(form2value))
{
values[1] = confirmPass.Text;
}
}
}
Form2value 是他们的用户名,所以我尝试做的是:如果第一列包含在 form2value 中输入的内容,它将转到该行的第二列。
我试过了
var values = line.Split(',');
if (values[0].Contains(form2value))
{
MessageBox.Show(values[1]);
values[1] = confirmPass.Text;
MessageBox.Show(values[1]);
}
}
只是为了看看值是否在变化,但它也显示每个值[1],而我只希望它在找到 form2value 时显示。
我已尽力解释这一点,但如果有人需要更多信息,请告诉我。
有人知道我做错了什么吗?
【问题讨论】:
-
您是否尝试在开始时添加 MessageBox.Show(form2value) 以查看该变量中的内容?如果它为空或包含空格,您将看到所有行。