我正在为我的电影制作业务构建一个 WinForm 应用程序,我将使用它来输入我所有可用的人才信息。输入每个人才的信息并单击“添加记录”按钮后,文本框将全部添加到数据网格和文本文件中。我正在添加这样的信息:
public void AddToActorFile()
{
List<string> actorList = new List<string>();
actorList.Add(midianTalent.Name);
actorList.Add(midianActor.CharacterName);
actorList.Add(midianActor.CastHeight);
actorList.Add(midianActor.CastWeight);
actorList.Add(midianActor.CastAge);
actorList.Add(midianActor.CastSSN);
actorList.Add(imageFileName);
// B.
string[] actorArray = actorList.ToArray();
File.AppendAllLines(@"Cast.txt", actorArray);
MessageBox.Show(cbPosition.SelectedItem + " Added to Cast File");
AddActorToDataGrid();
}
public void AddActorToDataGrid()
{
actorDataGrid.Rows.Add(midianTalent.Name, midianActor.CastAge, midianActor.CastHeight, midianActor.CastWeight, midianActor.CastSSN, imageFileName);
}
文本文件以行分隔,因此它看起来像这样
Actor1Info1
Actor1Info2
Actor1Info3
Actor1Info4
Actor1Info5
Actor1Info6
Actor2Info1
Actor2Info2
Actor2Info3
等等 。. . 所以每个演员都有 6 个字段,一个接一个地被写入
然后我想关闭应用程序,当我重新打开它时,让文本文件自动使用每个参与者的信息填充数据网格。数据网格有 6 列,每行是 1 个参与者,每列包含相关信息。
以上所有工作正常,除了我无法弄清楚文本文件的读取。我正在使用以下方法
public void ReadTalentFileData()
{
using (StreamReader fileReader = new StreamReader("Talent.txt"))
{
int column = 0;
string fileLine;
while ((fileLine = fileReader.ReadLine()) != null)
{
string[] cells = fileLine.Split('\n');
talentDataGrid.Rows.Add();
for (int i = 0; i < cells.Length; i++)
{
talentDataGrid[column, i].Value = cells[i];
}
column++;
}
}
}
第一个演员列表很好,但无论我放了多少演员,这是唯一显示的记录,我的数据网格中还有额外的空白行。任何人都可以帮助我找出我的 readfile 方法中哪里出错了,以便每个参与者都显示在数据网格中。
我也欢迎有关重构代码的提示。
我最终会将其更改为从我的在线 MySQL 数据库读取和写入,因为我会让我的每个演员都使用这个应用程序,但我想让这个本地副本正常工作,这样我就可以把每个演员的信息放在那里。然后我会将文本文件导出到数据库,对数据库进行所需的更改,然后将应用程序发布给我的人才。