【问题标题】:Saving DataGridView保存 DataGridView
【发布时间】:2011-09-01 17:22:40
【问题描述】:

我将两个文件打开到 2 个单独的 DGV 中。一旦打开并单击“格式”按钮,它将匹配两个单独 DGV 中的所有行并将其复制到一个新的 DGV 中。

第一个 DGV 如下所示(列标签):

Name    P/N    X    Y    Rotation    PkgStyle

第二个 DGV 看起来像这样:

PkgStyle    P/D   Feeder    Vision    Speed    Machine    Width    Time

这两个文件将匹配 PkgStyle 并将其余行连接在一起以获得 第三个 DGV,如下所示:

Name    P/N    X    Y    Rotation    PkgStyle    PkgStyle    P/D   Feeder    Vision    Speed    Machine    Width    Time

现在,正如您所料,可能存在不正确匹配的行,并且不会合并两个文件中的两组行。如果是这种情况,它将只输入第一个文件中的信息,而不是第二个文件。

所以一些示例数据可能如下所示:

Name    P/N    X    Y    Rotation    PkgStyle    PkgStyle    P/D   Feeder    Vision    Speed    Machine    Width    Time
J11     1234   12  7     180         9876         9876    THETHING   1        1           1        UNI      12MM     1MS
R90     2222   19  9     0           1255         1255    ITEM       2        1           1        UNI2     5MM      1MS
J18     9845   11  4     270         456
C127    1111   05  1     270         5555         5555    ITEM2      3        1           1        UNI      8MM      0.1MS

所以

第三行(不包括列标题)中有空白单元格。当用户更改那些空白点中的单元格数据时,我想将其添加到已经包含类似数据的文本文档中。因此,如果用户将 456 someITEM 4 1 1 UNI2 9MM 10MS 添加到空白的 DataGridView 行中,我想将其添加到已经包含数据的文件的末尾。如果每行都填写了所有列单元格,我只想添加该行。输出可以只是 空格 分隔。

谁能帮我解决这个问题?

【问题讨论】:

    标签: c# file datagridview save


    【解决方案1】:

    您可以使用此链接检查所选单元格是否为空/空,并进行一些修改:C# DataRow Empty-check

    我想 3 个数据网格:相应的 dg1、dg2、dg3。 dg3 的列由 dg1 和 dg2 的列组成。

    public static string GetNewData(DataRow row)
    {
      string res = string.Empty;
      if (row == null) throw new ArgumentNullException("row");
    
      foreach (DataColumn column in dg2.Columns)
        if (row.IsNull(column.ColumnName) || string.IsNullOrEmpty(row[column.ColumnName].ToString()))
          return string.Empty;
        else
          res += row[column.ColumnName] + " ";
    
      return res.Trim();
    }
    

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:
      foreach (var line in theList)
      {
          string pkgStyleNA, PDNA, feederNA, visionNA, speedNA, machineNA, widthNA, timeNA;
      
          if (line.PkgStyle.Equals(string.Empty))
              pkgStyleNA = "N/A ";
          else
              pkgStyleNA = line.PkgStyle;
      
          if (line.PD.Equals(string.Empty))
              PDNA = "N/A ";
          else
              PDNA = line.PD;
      
          if (line.Feeder.Equals(string.Empty))
              feederNA = "N/A ";
          else
              feederNA = line.Feeder;
      
          if (line.Vision.Equals(string.Empty))
              visionNA = "N/A ";
          else
              visionNA = line.Vision;
      
          if (line.Speed.Equals(string.Empty))
              speedNA = "N/A ";
          else
              speedNA = line.Speed;
      
          if (line.Machine.Equals(string.Empty))
              machineNA = "N/A ";
          else
              machineNA = line.Machine;
      
          if (line.Width.Equals(string.Empty))
              widthNA = "N/A ";
          else
              widthNA = line.Width;
      
          if (line.Time.Equals(string.Empty))
              timeNA = "N/A ";
          else
              timeNA = line.Time.ToString();
      
          addToDataBase.Add(pkgStyleNA + " " + PDNA + " " + feederNA + " " + visionNA + " " + speedNA+ " " + machineNA+ " " + widthNA + " " + timeNA);
      }
      
      using (StreamWriter outFile = new StreamWriter(openDataBaseFile.FileName, true))
      {
          outFile.WriteLine();
      
          var noDuplicatesList = addToDataBaseList.Distinct().ToList();
          foreach (var item in noDuplicatesList)
              outfile.WriteLine(item);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-23
        • 2015-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多