通过手动映射列,从数据表中逐行填充Datagridview

时间:2017-02-23 16:24:45

标签: c# datagridview

我是VB.Net编码器,但试图接近C#编程 在VB.NET中,我可以这样写,没有任何麻烦

For i As Integer = 0 To dt.Rows.Count - 1 'dt is datatable
    dgv.Rows.Add()
    dgv.Rows(i).Cells("Sno").Value = i + 1
    dgv.Rows(i).Cells("itemcode").Value = dt.Rows(i)("itemcode").ToString.Trim
    dgv.Rows(i).Cells("itemname").Value = dt.Rows(i)("itemname")
Next

但是当我用C#编码时

for (int i = 0; i <= dt.Rows.Count-1; i++) //dt is datatable
{
    DG.Rows.Add();
    DG.Rows(i).Cells("Sr").Value = i + 1;
    DG.Rows(i).Cells("Itemcode").Value = dt.rows(i)("itemcode");
}

DG.Rows(i).Cells("Sr").Value = i + 1;会出错

  

非可调用成员&#39; DataGridView.Rows&#39;不能像一个人一样使用   方法

我做错了什么?

2 个答案:

答案 0 :(得分:2)

在C#中,您应该使用括号[]代替括号()

for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
    DG.Rows.Add();
    DG.Rows[i].Cells["Sr"].Value = i + 1;
    DG.Rows[i].Cells["Itemcode"].Value = dt.Rows[i]["itemcode"];
}

答案 1 :(得分:0)

尝试使用[]括号而不是():

e.g。

 DG.Rows[i].Cells["Sr"].Value = i + 1;

而不是

 DG.Rows(i).Cells("Sr").Value = i + 1;