c#如何在循环中获取数据集内容

时间:2013-11-13 16:05:12

标签: c# asp.net

我有一个数据集 ds1 ,我从表中选择了一个列。

da = new SqlDataAdapter("Select column from table", con); // con is the connection string
da.Fill(ds1, "column");

然后我将第一行的内容分配给字符串数组 getitems [] ,如下所示:

getitems[0] = (ds1.Tables[0].Rows[0]["column"].ToString());

如果我以这种方式使用它,但是数据集包含600行,那么每件事都运行正常。我在循环中使用了上面的语句,但是我收到了一个错误。这是代码:

for(int i=0; i<=600; i++) {

getitems[i] = (ds1.Tables[i].Rows[i]["column"].ToString());
dt.Rows.Add(getitems[i]);
//dt is another data set and is putting the data on a data grid
}

我在将内容分配给字符串数组的行中得到此异常:

Exception Details: System.IndexOutOfRangeException: Cannot find table 1.

2 个答案:

答案 0 :(得分:3)

您的DataSet没有600个表!

这不对 - Tables[i]

仅对行使用循环,而不是在行上使用600 Count或使用foreach循环。类似的东西:

 var dt = ds1.Tables[0];
 foreach (DataRow row in dt.Rows) 
 {
    foreach (DataColumn col in dt.Columns)

答案 1 :(得分:1)

试试这个

for(int i=0; i<600; i++) {
    getitems[i] = Convert.ToString(ds1.Tables[0].Rows[i]["column"]);
    //Some logic
}