に結合していないのDataGridViewの変換私はSqlBulkCopy
の準備のために別のクラスQueries
にDataTable
にForm1
からの私のDataGridView dgvInput
を変換しようとしています。 dgvInput
を私のクラスQueries
のSaveAll
のメソッドDataGridView dgv
で渡します。のDataTable
をForm1:
public void convert2DT(DataGridView dgv)
{
Queries qry = new Queries();
qry.SaveAll(dgvInput);
}
クラス:
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
}
}
私はライン>>
上とNullReferenceExceptionを取得しています。
エラーメッセージ:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 New
をdgv
に設定しようとしました。しかし、私はまだ例外を取得します。私が調査したことから、入れ子になったforループは、仕事を正しく行うべきです(SHOULD)。
どうすれば解決できますか?
dr.Cells [i] 'または' dr.Cells [i] .Value'のいずれかがヌルです。おそらくそれは 'dr.Cells [i]'でしょう。条件付き演算子を使用します。 – Ian
ありがとうございました! 'dr.Cells [i] .Value'は' null'です。具体的には、生成する第1行はnullです。何とかそのヌル行を削除できますか? – Hexxed
@Ian NVM。私はちょうどなぜそのヌルを発見した。私の最後の行は空白です。 'AllowUserToAddRows = false'を設定するだけです。お手伝いありがとう。あなたの答えを下記に投稿してください。だから私はそれを受け入れることができた。 – Hexxed