日期:2014-05-20  浏览次数:21194 次

(请教)指定的参数已超出有效值的范围。参数名: index
1. UserTable=new DataTable();
UserTable.Columns.Add("UserName");

//新添加一列(Beizhu),出现问题
DataColumn dc=new DataColumn("Beizhu",System.Type.GetType ("System.String"));
UserTable.Columns.Add(dc);

string[] Arr=this.AvailBanLiRen.Split(new char[1]{';'});
if(Arr.Length>0)
{
for(int i=0;i<Arr.Length;i++)
{
UserTable.Rows.Add(new object[1]{Arr[i]});
}
}
this.Datagrid1.DataSource=UserTable;
this.Datagrid1.DataBind();
this.dpDepartment.Visible=false;

2.
private void Datagrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemIndex>-1)
e.Item.Cells[0].Text="<input type=checkbox title='"+e.Item.Cells[1].Text+"' name='cbSelector' value='"+e.Item.Cells[0].Text+"'>"+e.Item.Cells[0].Text;
}
//e.Item.Cells[1].Text 这个是我添加的!

错误提示:(请教)指定的参数已超出有效值的范围。参数名: index ,
问题:那个列名Beizhu应该有添加进datatable吧,为什么会有这个错误呢?还是游标越界?请指教,要怎么在修改,怎么添加一个列名和应用这个列。

------解决方案--------------------
UserTable.Rows.Add(new object[1]{Arr[i]}); 添加行 只有一列的值把!
------解决方案--------------------
1、我这里试了一下,没有问题,webform
C# code
protected void Button2_Click(object sender, EventArgs e)
    {
        DataTable user = new DataTable();
        user.Columns.Add("username");
        DataColumn dc = new DataColumn("beizhu", System.Type.GetType("System.String"));
        user.Columns.Add(dc);
        string[] Arr = this.TextBox2.Text.Split(new char[1] { ';' });
        if (Arr.Length > 0)
        {
            for (int i = 0; i < Arr.Length; i++)
            {
                user.Rows.Add(new object[1] { Arr[i] });
            }
        }
        this.DataGrid1.DataSource = user;
        this.DataGrid1.DataBind();
        //this.dpDepartment.Visible = false; 
    }