Ich versuche, meine Datagridview dgvInput
von Form1
zu einem DataTable
in einer anderen Klasse Queries
in Vorbereitung auf SqlBulkCopy
zu konvertieren. Ich gehe dgvInput
ein Verfahren SaveAll
in meiner Klasse Queries
mit einem Parameter DataGridView dgv
.Konvertieren von ungebundenen Datagridview zu einer Datatable
Form1:
public void convert2DT(DataGridView dgv)
{
Queries qry = new Queries();
qry.SaveAll(dgvInput);
}
Klasse:
class Queries {
public void SaveAll(DataGridView dgv)
{
foreach (DataGridViewRow dr in dgv.Rows)
{
//Create table and insert into cell value.
DataRow dataRow = dt.NewRow();
for (int i = 0; i < noOfColumns; i++)
{
if (i == 0)
>> { dataRow[i] = DateTime.Parse(dr.Cells[i].Value.ToString()); }
else if (i == 7)
{ dataRow[i] = int.Parse(dr.Cells[i].Value.ToString()); }
else
{ dataRow[i] = dr.Cells[i].Value.ToString(); }
}
dt.Rows.Add(dataRow);
}
//SqlBulkCopy Codes
}
}
Ich erhalte Nullreferenceexception on line >>
.
Fehlermeldung: Objektverweis nicht auf eine Instanz eines Objekts festgelegt. Ich habe versucht, New
auf dgv
zu setzen. Allerdings bekomme ich immer noch eine Ausnahme. Nach was ich recherchiert habe, sollten die Nested for Loops den Job richtig machen.
Wie kann ich dieses Problem lösen?
entweder 'dr.Cells [i]' oder 'dr.Cells [i] .Value' ist' null'. Wahrscheinlich ist es "dr.Cells [i]". Verwenden Sie den bedingten Operator null. – Ian
Danke! 'dr.Cells [i] .Value 'ist' null'. Speziell die erste Zeile, die es generiert, ist null. Kann ich diese Nullzeile irgendwie löschen? – Hexxed
@Ian NVM. Ich habe gerade herausgefunden, warum es null ist. Meine letzte Zeile ist leer. Setzen Sie einfach 'AllowUserToAddRows = false'. Danke für die Hilfe. Bitte posten Sie Ihre Antwort unten. Also konnte ich es akzeptieren. – Hexxed