asp.net中dataset如何获得多个datatable表的集合(datatable表结构相同),以实现在页面上显示所有表?
if(dt!=null&&dt.Rows.Count>0){foreach(DataRowdrindt.Rows){stringconStr=Utility.GetCon...
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
string conStr = Utility.GetConnectionString(dr["ip"].ToString(),dr["db"].ToString(),ende.Decrypt(dr["un"].ToString()),ende.Decrypt(dr["pwd"].ToString()));
string sql = "select * from R_Count";
SqlConnection conn = new SqlConnection(conStr);
DataSet ds = new DataSet();
conn.Open();
SqlCommand cmd = new SqlCommand(sql,conn);
SqlDataAdapter ada = new SqlDataAdapter(cmd);
ada.Fill(ds);
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}
}
dt中存放了连接数据库的字符串。遍历dt中的行,连接多个服务器上的数据库。想要实现在一个页面上显示来自不同服务器上同一张表的有数据数据。本人的程序只显示了连接信息最后一条所连数据库的信息。 展开
{
foreach (DataRow dr in dt.Rows)
{
string conStr = Utility.GetConnectionString(dr["ip"].ToString(),dr["db"].ToString(),ende.Decrypt(dr["un"].ToString()),ende.Decrypt(dr["pwd"].ToString()));
string sql = "select * from R_Count";
SqlConnection conn = new SqlConnection(conStr);
DataSet ds = new DataSet();
conn.Open();
SqlCommand cmd = new SqlCommand(sql,conn);
SqlDataAdapter ada = new SqlDataAdapter(cmd);
ada.Fill(ds);
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}
}
dt中存放了连接数据库的字符串。遍历dt中的行,连接多个服务器上的数据库。想要实现在一个页面上显示来自不同服务器上同一张表的有数据数据。本人的程序只显示了连接信息最后一条所连数据库的信息。 展开
1个回答
展开全部
你这里每次都是new的ds,然后直接就绑定了gv,这样gv里面当然只显示最后一个。你可以先把所有的结果集都读出来 ,然后整合到一个ds里面再绑定。另外,我觉得你这种多次读取数据库的情况不太好,你找一个主数据库,把其他的数据库ip都做成链接服务器,然后通过链接服务器来调用其他服务器上的表记录,在数据库里面整合好以后,再在程序里面查询出来。
追问
能详细解释一下把所有的结果集都读出来,然后整合到一个ds里面在绑定。或者用代码简单表示一下。
追答
dt.Merge(dt1); 两个datatable 合并 ,你试试 。如果不行,你就用最简单的,循环去添加吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询