簡體   English   中英

從datagridview讀取到列表並添加到另一個datagridview

[英]read from a datagridview to a list and add to another datagridview

嗨,我正在嘗試從datagridview讀取到列表。 在此,datagridview中的每一行都作為對象添加到列表中。 我正在從第一個datagridview讀取所有數據到對象列表,然后通過單擊一個按鈕在第二個datagridview中顯示所有這些記錄。 這是我的代碼,它給我錯誤對象引用未設置為對象的實例。 有人可以糾正嗎? 這是我的代碼。

 List<ClsOBJ> list1 = new List<ClsOBJ>();
    private void button2_Click(object sender, EventArgs e)
    {
        try
        {
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                ClsOBJ userobj = new ClsOBJ();
                     userobj.username=dataGridView1.Rows[row.Index].Cells[0].Value.ToString();
                userobj.userid=dataGridView1.Rows[row.Index].Cells[1].Value.ToString();

                list1.Add(userobj);




            }

            BindingSource binding = new BindingSource();
            binding.DataSource = list1;
            dataGridView2.DataSource = binding;
            MessageBox.Show("Added");
        }
        catch(Exception xx)
        {
            MessageBox.Show(xx.Message);
        }
    }

第一:哪一行給您例外?

第二:暫時擺脫“ try-catch”,並在引發異常時,將光標置於有問題的語句中的每個屬性名稱上。 找出哪個值是'null'

第三:乍看之下是這樣的錯:

dataGridView1.Rows[row.Index].Cells[0].Value.ToString();

如果單元格的是零,然后調用它的ToString()將拋出一個異常。

另外,您的DataGridView是否將AllowUserToAddRows設置為true (順便說一下,這是默認設置)? 如果是這種情況,則dataGridView1.Row [dataGridView1.NewRowIndex]中包含null。

您可以檢查該行是否不是NewRow:

if(!dataGridView1.Rows[row.Index].IsNewRow)
{
    // do something...
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM