C#行分隔的文本文件到DataGrid单元格
我正在为我的电影制作业务构建一个WinForm应用程序,我将使用它输入我所有可用人才的信息。输入每个人才的信息并单击“添加记录”按钮后,文本框将全部添加到数据网格和文本文件中。我添加如下信息:C#行分隔的文本文件到DataGrid单元格,c#,arrays,datagrid,text-files,C#,Arrays,Datagrid,Text Files,我正在为我的电影制作业务构建一个WinForm应用程序,我将使用它输入我所有可用人才的信息。输入每个人才的信息并单击“添加记录”按钮后,文本框将全部添加到数据网格和文本文件中。我添加如下信息: public void AddToActorFile() { List<string> actorList = new List<string>(); actorList.Add(midianTalent.Name);
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);
}
等等。因此,每个参与者都有6个字段,这些字段一个接一个地写入
然后我想关闭应用程序,当我重新打开它时,让文本文件自动将每个参与者的信息填充到数据网格中。datagrid有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++;
}
}
}
public void ReadTalentFileData()
{
使用(StreamReader fileReader=newstreamreader(“Talent.txt”))
{
int列=0;
字符串文件行;
而((fileLine=fileReader.ReadLine())!=null)
{
string[]cells=fileLine.Split('\n');
talentDataGrid.Rows.Add();
for(int i=0;i
第一个参与者列表很好,但无论我在其中放入多少参与者,这是唯一显示的记录,我的数据网格中还有额外的空白行。有人能帮我找出readfile方法中的错误所在吗?这样每个参与者都会出现在datagrid中
我还欢迎关于重构代码的提示
我最终会将其改为从我的在线MySQL数据库读写,因为我会让我的每个演员都使用这个应用程序,但我想让这个本地副本工作,这样我就可以把每个人才的信息放在那里。然后,我会将文本文件导出到数据库,对数据库进行所需的更改,然后将应用程序发布给我的天才。我会将行合并为逗号分隔的值,而不是每个参与者6行
var line = string.Join(",", actorList);
接下来,您可以简单地读取文件,因为每一行都是参与者
foreach(var line in File.ReadLines("Talent.txt"))
{
var columns = line.Split(',');
talentDataGrid.Rows.Add(columns)
}
根据您关于使用联接的建议,我现在让它在文本文件中创建一个逗号分隔的列表,但是由于我没有将源绑定到datagrid,因此读取将不起作用。但是现在我已经把它放到了一个逗号分隔的列表中,我可以使用我在互联网上找到的众多示例中的一个轻松地读取该文件。我只是找不到很多处理以行分隔的列表或演示如何将其转换为以逗号分隔的。谢谢。您只需使用
列
,它是一个字符串数组,并将每个索引分配给相应的列。我会加上一个编辑。
foreach(var line in File.ReadLines("Talent.txt"))
{
var columns = line.Split(',');
talentDataGrid.Rows.Add(columns)
}