问一个DataSet问题

an_andy 2006-03-20 09:14:56
for(int i=0,i<10;i++)
{
SqlConnection mySqlConnection = new SqlConnection(conn);
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("select * from Table[i]",mySqlConnection )
DataSet ds = new DataSet();
mySqlConnection.open();
mySqlDataAdapter.fill(ds);
mySqlConnection.close();
}
就是查询语句是循环出来的,用DataSet填充数据集,结果往往DataSet只有最后一个表的记录,
我该怎么处理?
...全文
116 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingfeng_314 2006-03-20
  • 打赏
  • 举报
回复
思归的理解能力太强了。
j_lei407 2006-03-20
  • 打赏
  • 举报
回复
TableName(存放表名的表); 字段name放表名;

DataSet ds = new DataSet();

SqlConnection mySqlConnection = new SqlConnection(conn);
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("select * from tablename",mySqlConnection ) mySqlConnection.open();
mySqlDataAdapter.Fill(ds,"Table");
DataSet ds1 = new DataSet();

for(int i = 0; i < ds.Tables["Table"].Rows.Count); i++)
{
mySqlDataAdapter.SelectCommand.CommanText = "select * from " + ds.Tables["Table"].Rows[i]["name"].ToString();
mySqlDataAdapter.Fill(ds1,"Table"+i.ToString());

}

mySqlConnection.close();
an_andy 2006-03-20
  • 打赏
  • 举报
回复
TO: dutguoyi(新鲜鱼排)

何解呢
新鲜鱼排 2006-03-20
  • 打赏
  • 举报
回复
建议单纯循环产生查询语句。
an_andy 2006-03-20
  • 打赏
  • 举报
回复
是的,
j_lei407 2006-03-20
  • 打赏
  • 举报
回复
Table[i]存放的是要查的表名吗?
j_lei407 2006-03-20
  • 打赏
  • 举报
回复
思归大哥的正解
hanxianzhi 2006-03-20
  • 打赏
  • 举报
回复
1、mySqlConnection 放在for外
2、ds 放在for外
3、mySqlDataAdapter.fill(ds,'不同的表名')
an_andy 2006-03-20
  • 打赏
  • 举报
回复
楼上兄弟:
我就是不知道怎么处理这个问题的,所以求助的!
因为所有的表名(select * from Table[i])是存在另外一张表,查询出来的;
sisen 2006-03-20
  • 打赏
  • 举报
回复
对, saucer(思归) 正解。
一下Set里面可以填很多张表
fphuang 2006-03-20
  • 打赏
  • 举报
回复
for(int i=0,i<10;i++)
{
SqlConnection mySqlConnection = new SqlConnection(conn);
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("select * from Table[i]",mySqlConnection )
DataSet ds = new DataSet();
mySqlConnection.open();
mySqlDataAdapter.fill(ds);
mySqlConnection.close();
}

或许是我没太看明白你的程序
("select * from Table[i]",这个地方,变量i有什么作用吗?

还有象你这样循环每次都要新建一个ds,当然是只有最后一个了
saucer 2006-03-20
  • 打赏
  • 举报
回复
DataSet ds = new DataSet();

using(SqlConnection mySqlConnection = new SqlConnection(conn))
{
mySqlConnection.Open();

SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("",conn);
for(int i=0,i<10;i++)
{

mySqlDataAdapter.SelectCommand.CommanText = "select * from Table" + i.ToString(),
mySqlDataAdapter.Fill(ds,"Table"+i.ToString());
}

}
sisen 2006-03-20
  • 打赏
  • 举报
回复
DataSet[] ds = new DataSet[10];变成DataSet数组;
for(int i=0,i<10;i++)
{
SqlConnection mySqlConnection = new SqlConnection(conn);
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("select * from Table[i]",mySqlConnection )

mySqlConnection.open();
mySqlDataAdapter.fill(ds[i]);
mySqlConnection.close();
}
就是查询语句是循环出来的,用DataSet填充数据集,结果往往DataSet只有最后一个表的记录,
我该怎么处理?

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧