开发者

Saving DataGridView

开发者 https://www.devze.com 2023-04-01 03:11 出处:网络
I open two files into 2 seperate DGVs.. Once opened and the button \"Format\" is clicked, it matches all of the lines in the two seperate DGVs and copies it into a new DGV.

I open two files into 2 seperate DGVs.. Once opened and the button "Format" is clicked, it matches all of the lines in the two seperate DGVs and copies it into a new DGV.

The first DGV looks like this (column labels):

Name    P/N    开发者_StackOverflow社区X    Y    Rotation    PkgStyle

and the second DGV looks like this:

PkgStyle    P/D   Feeder    Vision    Speed    Machine    Width    Time

The two files will match the PkgStyle and concat the rest of the lines together to get the third DGV that looks like this:

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

Now, as you may expect there could be possible lines that do not match properly and will not combine the two sets of lines from the two files. If this is the case it will only input the information from the first file and not the second.

So some sample data might look like this:

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

SO

The third row (not including the titles of the columns) has blank cells in it. When the user changes the cell data in those blank spots, I would like to add it to a text document that already contains similar data. So, if the user added 456 someITEM 4 1 1 UNI2 9MM 10MS to the DataGridView lines that were blank, I want to add that to the end of the a file that already contains data. I want to only add the line if all of the column cells are filled in for each row. The output can just be space delimited.

Can anyone help me with this?


You can use this link to check selected cell is null/empty or not with some modification: C# DataRow Empty-check

I suppose 3 datagrid: dg1, dg2, dg3 accordingly. Columns of dg3 compose of columns of dg1 and 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();
}

Hope this help.


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);
}
0

精彩评论

暂无评论...
验证码 换一张
取 消