J'utilise le code ci-dessous pour insérer des données dans une table SQL à partir d'une grille de données, la grille de données a 5 lignes mais seulement 4 sont insérées dans la table, la première rangée est manquée. J'ai réduit le problème à updateTable ci-dessous. Pouvez-vous repérer le problème? Après une heure d'essai je ne peux pas.C# Insérer dans la table SQL manque la première ligne de ma grille de données
private void updateTable(OdbcConnection conn)
{
int iCols = _DGV.ColumnCount;
int iRows = _DGV.RowCount;
int iIndex = 1;
string strSql = GetInsertStatement(iCols);
foreach(DataGridViewRow dr in _DGV.Rows)
{
if (!dr.Visible)
{
continue;
}
iIndex++;
OdbcCommand cmd = new OdbcCommand();
for (int j = 0; j <= iCols - 1; j++)
{
if (_DGV.Columns[j].Visible == false)
{
continue;
}
try
{
conn.Open();
cmd.Connection = conn;
cmd.CommandText = strSql;
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
}
finally
{
conn.Close();
}
}
}
iIndex ne ressemble pas à elle est utilisée partout. – Jonas
Je l'avais essayé sans succès, le code n'est pas le mien, il appartient à un collègue qui est actuellement absent du travail malade. –
@ Jonas, vous avez raison. Tellement bizzare. @Jade M, pourquoi vérifie-t-il .Visible tout le temps? Je pense qu'un autre code non montré cache quelque chose. – lod3n