Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Datagridview:如果单元格值符合条件,则创建新的文本文件_C#_.net_Datagridview - Fatal编程技术网

C# Datagridview:如果单元格值符合条件,则创建新的文本文件

C# Datagridview:如果单元格值符合条件,则创建新的文本文件,c#,.net,datagridview,C#,.net,Datagridview,我创建了Datagridview,如下图所示,第一列作为参考值 我想基于第一列值将所有行导出到文本文件。 每个Level=0都将使用filename=Level 0 Partnumber 下面是我的代码,但此代码将只在一个文本文件中保存所有数据 SaveFileDialog sv = new SaveFileDialog(); sv.FileName = ""; sv.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; if (sv

我创建了
Datagridview
,如下图所示,第一列作为参考值

我想基于第一列值将所有行导出到文本文件。 每个
Level=0
都将使用
filename=Level 0 Partnumber

下面是我的代码,但此代码将只在一个文本文件中保存所有数据

SaveFileDialog sv = new SaveFileDialog();
sv.FileName = "";
sv.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
if (sv.ShowDialog() == DialogResult.OK)
{
    TextWriter writer = new StreamWriter(sv.FileName);
    writer.Write("Level\tPartnumber\tDescription");
    writer.WriteLine("");
    for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
    {
        for (int j = 0; j < dataGridView1.Columns.Count; j++)
        {
            writer.Write(dataGridView1.Rows[i].Cells[j].Value.ToString() + "\t");
        }
        writer.WriteLine("");
    }
    writer.Close();
    MessageBox.Show("Data Exported");
}
SaveFileDialog sv=new SaveFileDialog();
sv.FileName=“”;
sv.Filter=“文本文件(*.txt)|*.txt|所有文件(*.*)|*.”;
如果(sv.ShowDialog()==DialogResult.OK)
{
TextWriter writer=新的StreamWriter(sv.FileName);
writer.Write(“级别\t部件号\t说明”);
writer.WriteLine(“”);
对于(int i=0;i

提前感谢。

添加linq名称空间并尝试此功能

    List<product> prdList = new List<product>();
    private void SetValue()
    {
        product prd1 = new product
        {
            Level = 0,
            PartNumber = "Item A",
            Description = "Product"
        };
        product prd2 = new product
        {
            Level = 0,
            PartNumber = "Item b",
            Description = "batry"
        };
        product prd3 = new product
        {
            Level = 1,
            PartNumber = "Item1",
            Description = "Product"
        };
        product prd4 = new product
        {
            Level = 1,
            PartNumber = "Item2",
            Description = "Product"
        };
        product prd5 = new product
        {
            Level = 1,
            PartNumber = "Item3",
            Description = "Product"
        };
        prdList.Add(prd1);
        prdList.Add(prd2);
        prdList.Add(prd3);
        prdList.Add(prd4);
        prdList.Add(prd5);
    }

    private void CreateTextFile()
    {
        var newPrdList = prdList.GroupBy(x => x.Level).ToList();

        foreach (var levels in newPrdList)
        {
            TextWriter writer = new StreamWriter("D:\\Level" + levels.FirstOrDefault().Level + ".txt");
            writer.Write("Level\tPartnumber\tDescription");
            foreach (var level in levels)
            {
                writer.WriteLine("");
                writer.Write(level.Level.ToString() + "\t");
                writer.Write(level.Description + "\t");
                writer.Write(level.PartNumber + "\t");
                writer.WriteLine("");
            }
            writer.Close();
        }
    }
List prdList=new List();
私有void SetValue()
{
产品prd1=新产品
{
级别=0,
PartNumber=“项目A”,
Description=“产品”
};
产品prd2=新产品
{
级别=0,
PartNumber=“项目b”,
Description=“batry”
};
产品prd3=新产品
{
级别=1,
PartNumber=“Item1”,
Description=“产品”
};
产品prd4=新产品
{
级别=1,
PartNumber=“Item2”,
Description=“产品”
};
产品prd5=新产品
{
级别=1,
PartNumber=“Item3”,
Description=“产品”
};
prdList.Add(prd1);
prdList.Add(prd2);
prdList.Add(prd3);
prdList.Add(prd4);
prdList.Add(prd5);
}
私有void CreateTextFile()
{
var newPrdList=prdList.GroupBy(x=>x.Level.ToList();
foreach(newPrdList中的var级别)
{
TextWriter writer=newstreamwriter(“D:\\Level”+levels.FirstOrDefault().Level+”.txt”);
writer.Write(“级别\t部件号\t说明”);
foreach(级别中的var级别)
{
writer.WriteLine(“”);
writer.Write(level.level.ToString()+“\t”);
writer.Write(level.Description+“\t”);
writer.Write(level.PartNumber+“\t”);
writer.WriteLine(“”);
}
writer.Close();
}
}

好的,您正在使用
SaveFileDialog
向用户请求一个文件名,然后您正在使用给定的文件名将所有行写入该文件中。这里没有意外。您的图片将创建多少个文件?将基于图片创建2个文本文件。项目A.txt和项目B.txt。谢谢