无法向DataGridViewRow转换行

时间:2017-11-28 10:48:01

标签: c# datagridview

我觉得这很奇怪,我无法弄清楚它为什么不起作用。 我有 DataTable ,名为 tempDT

这有效:此代码是否也将行转换为DataGridViewRow?

char str[] = "a"; // sizeof(str) will give 2 because presence of extra NULL character
char c = 'a'; // simply a single character

这也是:如果我这样做,只能将其投射到DataRow中!

foreach (DataGridViewRow row in tempDT.Rows)
{
  //  do iteration       
  foreach (DataGridViewCell cell in row.Cells)
  {
    //  do iteration
  }
}

但这不是:

DataRow row2 = ((DataRow)tempDT.Rows[0]);

为什么我不能像上面那样投射它?

1 个答案:

答案 0 :(得分:-1)

以下对我很好,

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            List<Customer> lst = new List<Customer>() { new Customer() { ID = 1, Name = "XYZ" }, new Customer() { ID = 1, Name = "XYZ" } };

            dataGridView1.DataSource = lst;

            DataGridViewRowCollection c =  dataGridView1.Rows;
            DataGridViewRow val = dataGridView1.Rows[0];
            Console.WriteLine(val.Cells[0].Value);
        }

        private class Customer
        {
            public int ID { get; set; }
            public string Name { get; set; }
        }
    }

代码问题是您正在尝试将DataTable行(即DataRow)转换为DataGridViewRow。 (这就是我从您提供的代码中所看到的)。如果是这种情况,则无法将DataRow转换为DataGridViewRow。