下面的代码是ASP.NET(C#)中,用控件GRIDVIEW显示ACCESS表的代码,两个控件,要显示两个表中的内容,

但运行结果是显示了同一个表中的内容,请问错在哪里,如何修改。stringCnnString="Provider=Microsoft.Jet.OLEDB.4.0;DataS... 但运行结果是显示了同一个表中的内容,请问错在哪里,如何修改。
string CnnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/App_Data/课表查询打印.mdb");
OleDbConnection cnn = new OleDbConnection(CnnString);
cnn.Open();
OleDbDataAdapter da = new OleDbDataAdapter("select top 10 * from [kcb]", cnn);//CnnString 改为 select * from [lbcjb]
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;//要用ds,不是da
GridView1.DataBind();

//string CnnString2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/App_Data/课表查询打印.mdb");
//OleDbConnection cnn2 = new OleDbConnection(CnnString2);
//cnn2.Open();
OleDbDataAdapter da2 = new OleDbDataAdapter("select top 10 * from [jsrkb]", cnn);//CnnString 改为 select * from [lbcjb]
DataSet ds2 = new DataSet();
da.Fill(ds2);
GridView2.DataSource = ds2;//要用ds,不是da
GridView2.DataBind();
请指导,谢谢
展开
 我来答
漫步人生ahri
推荐于2016-05-01 · TA获得超过171个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:181万
展开全部

因为多次读取的话,需要建立多个连接,不能一个建立完成,其实你上面的代码可以改成一个就行了

string CnnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/App_Data/课表查询打印.mdb");
        OleDbConnection cnn = new OleDbConnection(CnnString);
        cnn.Open();       
        OleDbDataAdapter da = new OleDbDataAdapter("select top 10 * from [kcb]  select top 10 * from [jsrkb]", cnn);//把两个sql都放在这里,这样就读两个了嘛,后面一个select一定要跟前面这个[kcb]空至少一个空格,这样才知道是两条sql语句
        DataSet ds = new DataSet();
        da.Fill(ds);//这样装箱以后,这个ds就有两张表了
        GridView1.DataSource = ds.Tables[0];//绑定第一张表
        GridView1.DataBind();
        GridView2.DataSource = ds.Tables[1];//绑定第二张表
        GridView2.DataBind();
        cnn.Close();//这个多次连接的一定要关闭上次连接
更多追问追答
追问
你好,你这是两个表写入两控件中显示。
请问,如果把两张表中的内容读入到两个二维数组中,链接代码又如何写出呢。
请指导,谢谢
追答

那你上面的提问问的是,用GRIDVIEW显示access的数据,而且你代码也是这样写。

那你问什么我当然答什么啊。你有什么问题你就一次列完,最讨厌那些问了A顺便又问B

那两张表转成二维数组,那就是DataTable转成二维数组,这个百度一大堆

 

Private string[,] Conver(DataTable dt)
{
  int col = dt.Columns.Count;
  string[,] array = new string[dt.Rows.Count,col];
  for (int i = 0; i < dt.Rows.Count; i++)
  {
     for (int j = 0; j < dt.Columns.Count; j++)
      {
         array[i, j] = dt.Rows[i][j].ToString().Trim();
      }
}
 return array ;
}
//你把那个ds.Tables[0]和ds.Tables[1]分别传进来那不就完事了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式