带有数据的数组

本文关键字:数组 数据 | 更新日期: 2023-09-27 18:02:51

我有一个数据网格,它的数据源是从数据库上的一个表中选择的。

一旦我读取表并在网格上显示数据,数据库中的行就被删除了(但我所有的数据都显示在我的网格上)。经过一些更改,添加和删除信息后,我需要将这些新行保存在一个新表中!

我正在尝试读取我的数据网格,但我不知道怎么做。

这是我的代码:

//fill my grid
SqlCeConnection conn = new SqlCeConnection();
StringBuilder sbQuery = new StringBuilder();
SqlCeCommand cmd = new SqlCeCommand();
conn.ConnectionString = ("Data Source =" + 
    (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)) + 
    "''MOB.sdf;Password=acwef;Persist Security Info=False;");
conn.Open();
DataSet ds = new DataSet();
SqlCeDataAdapter da = new SqlCeDataAdapter("SELECT * FROM TABDATAREG   ", conn);
da.Fill(ds, "TABDATAREG   ");
DivDup.dtgGrid.DataSource = ds.Tables[0].DefaultView;

//and here, I'm trying to read
foreach (DataRow renglon in DivDup.dtgGrid.rows)//<--------- BUT IT DOESNT WORK
{
    arregloGrid[i, 0] = DivDup.dtgGrid[i, 0].ToString();//num_cía
    arregloGrid[i, 1] = DivDup.dtgGrid[i, 1].ToString();//num_tipo
    arregloGrid[i, 2] = DivDup.dtgGrid[i, 2].ToString();//num_activo
    arregloGrid[i, 3] = DivDup.dtgGrid[i, 3].ToString();//sub_num_act
    //posicion i
    arregloGrid[i, 4] = DivDup.dtgGrid[i, 4].ToString();//marca
    arregloGrid[i, 5] = DivDup.dtgGrid[i, 5].ToString();//modelo
    arregloGrid[i, 6] = DivDup.dtgGrid[i, 6].ToString();//serie
    arregloGrid[i, 7] = DivDup.dtgGrid[i, 7].ToString();//descripción
    arregloGrid[i, 8] = DivDup.dtgGrid[i, 8].ToString();//porcentaje
    arregloGrid[i, 9] = DivDup.dtgGrid[i, 9].ToString();//costo/importe
    i++;
}

任何想法?

带有数据的数组

Issue:

  1. 您正在查找DataGrid中的DataRow。
  2. 你没有在循环中使用DataRow

问题可以在这个循环中看到:

foreach (DataRow renglon in DivDup.dtgGrid.rows)
{
}

可以这样做:

foreach (DataRow renglon in ds.Tables[0].Rows)
{
         //here you can use renglon 
}

下面是如何遍历datagrid:

int rowCount = ds.Tables[0].Rows.Count;
int colCount = ds.Tables[0].Columns.Count;
for(int row = 0; row < rowCount; row++) 
{ 
    for(int col = 0; col < colCount; col++) 
    { 
        arregloGrid[row, col] = DivDup.dtgGrid[row, col].ToString();                  
    } 
}