快帮忙!!我快疯了!!!
我想实现这样的功能:
datagrid显示查询结果后,能再在结果中选出若干行,显示出来,代码如下:
DataTable dtReport = new DataTable(dtInitial.TableName);//dtInitial是原始的datatable
DataColumn mycol;
foreach(DataColumn col in dtInitial.Columns)
{
mycol = new DataColumn();
mycol.ColumnName = col.ColumnName;
mycol.DataType = col.DataType;
dtReport.Columns.Add(mycol);
}
string strSelect = "columnname DESC";//排序的条件
DataRow[] drTemp = dtInitial.Select("",strSelect);
DataRow mydr;
int iRowNum = System.Convert.ToInt32(this.comboBox4.Text);//iRowNum是用户要查看的行数
for(int i=0;i<iRowNum&&i<dtInitial.Rows.Count;i++)
{
mydr = dtReport.NewRow();
foreach(DataColumn col in dtInitial.Columns)
{
string str = col.ColumnName;
mydr[str]=drTemp[i][str];
}
this.dtReport.Rows.Add(mydr);
}
this.dataGrid1.DataSource=null;
this.dataGrid1.DataSource=this.dtReport;
运行时提示“索引超出了数组界限”。
而且我发现当查看的行数大于等于(原来的行数-1)就没有这个问题,为什么???