private void datatable() {
            DataTable table = new DataTable();
            DataColumn ch = new DataColumn("语文");
            table.Columns.Add(ch);
            DataColumn ma = new DataColumn("数学");
            table.Columns.Add(ma);
            DataColumn en = new DataColumn("英语");
            table.Columns.Add(en);            for (int i = 0; i < 100; i++) {
                string nname=student[i].Sname;
                if (student[i].Sno.Length != 0)
                {
                    int col1 = 0;
                    if (student[i].Cgrade < 60)
                    {
                        table.Rows[col1][ch] = nname;
                        col1++;
                    }
                    int col2 = 0;
                    if (student[i].Mgrade < 60)
                    {
                        table.Rows[col2][ma] = nname;
                        col2++;
                    }
                    int col3 = 0;
                    if (student[i].Egrade < 60)
                    {
                        table.Rows[col3][en] = nname;
                        col3++;
                    }
                }
            }
            this.data_failed.DataSource = table;
        }如上代码,运行会提示在位置0处没有任何行求教大大们如何给datable.rows赋值

解决方案 »

  1.   

                for (int i = 0; i < 100; i++) {
                    string nname=student[i].Sname;在循环里面应该先为表格行, 建一个新行,
    DataRow row=table.NewRow();//创建行
       table.Rows[col1][ch] = nname; 改为row[ch]=nname;//为表格行赋值
      最后循环的结束, table.Rows.Add(row);//添加行
      

  2.   

     for (int i = 0; i < 100; i++) {
       DataRow  row =new DataRow(); //循环一次创建一行
                    string nname=student[i].Sname;
      

  3.   

    还有一个问题  student是什么  是一个泛型么
    这个for循环  循环的是什么啊  
    for (int i = 0; i < 100; i++) {
    }
      

  4.   

    DataTable dt = new DataTable();DataRow dr = dt.NewRow();dr["列名"]="值";dt.Rows.Add(dr);