我在运行下面这段代码时,结果提示错误:System.IndexOutOfRangeException: 无法找到表 0。 protected void Page_Load(object sender, EventArgs e)
{
OleDbDataAdapter da = new OleDbDataAdapter("select * from info", my_conn);
DataSet ds= new DataSet();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
str += ds.Tables[0].Rows[i]["title"];
}
}
我修改了Tables[0]里面的索引号,结果还是类似的提示,请问Tables[]是什么意思?谢谢!!
{
OleDbDataAdapter da = new OleDbDataAdapter("select * from info", my_conn);
DataSet ds= new DataSet();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
str += ds.Tables[0].Rows[i]["title"];
}
}
我修改了Tables[0]里面的索引号,结果还是类似的提示,请问Tables[]是什么意思?谢谢!!
里面没有表 肯定就 System.IndexOutOfRangeException OleDbDataAdapter da = new OleDbDataAdapter("select * from info", my_conn);
DataSet ds= new DataSet();
da.Fill(ds);
你没有写数据填充语句
da.Fill(ds);
Tables就是你的DataSet里的所有表的集合,Tables[index]当然就是指其中某张表了。
你出现这个错误是因为没有写da.Fill(ds);
这样就ok了。
这样才能写成Tables["info"]
{
OleDbDataAdapter da = new OleDbDataAdapter("select * from info", my_conn);
DataSet ds= new DataSet();
da.Fill(ds,"表名");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
str += ds.Tables["表名"].Rows[i]["title"];
}
}
就可以了.
如果用da.Fill(ds);的话.
就用索引号.
str += ds.Tables[0].Rows[i]["title"];
0表示是ds中的表集合中的第一个.