本人c#菜鸟,很小一段数据库连接代码出现system.indexOutofRangeException错误,请高人指点

2024-12-23 12:56:28
推荐回答(6个)
回答1:

Console.WriteLine(ds.Tables["mie"].Rows[i]);应该换成Console.WriteLine(ds.Tables["mie"].Rows[i]["列名"]);
ds.tables["mie"]是一张表 上面你填充的那张表

rows[i][“列名"] i是第几行 合起来就是这张表的 第i行中的["列名"]列 可以找到一个元素 但是表中必须有数据 语言描述的不是太准确 但大致都说出来了 希望能帮到你

回答2:

Console.WriteLine(ds.Tables["mie"].Rows[i]);
换为:
for(int m=0;m< ds.Tables["mie"].Cols.Count;m++)
{
Console.WriteLine(ds.Tables["mie"].Rows[i][m]);
}

回答3:

i <=ds.Tables["mie"].Rows.Count 去掉“=”即可

回答4:

索引超过数组长度的问题,也就是下标越界,在循环里面,i的最大值是tabels的长度减去1,因为i是从0开始的。代码做小小的修改就行了:
i < ds.Tables["mie"].Rows.Count

回答5:

for (int i = 0; i <=ds.Tables["mie"].Rows.Count; i++)
修改为
for (int i = 0; i

回答6:

DataSet ds = new DataSet();
DataTable dt = new DataTable();

DataRow tr = dt.NewRow();
DataColumn dc1 = new DataColumn();
dc1.ColumnName = "第一列";

DataColumn dc2 = new DataColumn();
dc2.ColumnName = "第二列";

DataColumn dc3 = new DataColumn();
dc3.ColumnName = "第三列";

dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);

for (int i = 1; i <= 100; i++)
{
if (i % 3 == 0)
{
DataRow trNew = dt.NewRow();

trNew["第一列"] = i + "第一列";
trNew["第二列"] = i + "第二列";
trNew["第三列"] = i + "第三列";

dt.Rows.Add(trNew);
}
}

ds.Tables.Add(dt);

foreach (DataRow item in ds.Tables[0].Rows)
{
foreach (DataColumn colum in ds.Tables[0].Columns)
{
Console.WriteLine(colum.ColumnName + ":" + item[colum.ColumnName].ToString());
Response.Write(colum.ColumnName + ":" + item[colum.ColumnName].ToString() + "
");
}
}