用ASP+ACCESS怎么实现在同一页面读取同一个数据库的两个或多个表

问题同上,网上的我看了很多,都说可以实现,但是我不知道具体的操作步骤是什么?我的数据库名为user.里面的表分别是news和news1字段名是idtitletitle2... 问题同上,网上的我看了很多,都说可以实现,但是我不知道具体的操作步骤是什么?我的数据库名为user.里面的表分别是news和news1 字段名是id title title2 展开
 我来答
一点设计演示
高粉答主

2015-09-12 · 职场/教育各类模板,衷于原创
一点设计演示
采纳数:874 获赞数:83600

向TA提问 私信TA
展开全部

1.任意新建或找一个Access数据库文件data.mdb,这里我新建了一个data.mdb,这里有两个表User和Class。表结构如下图

2.任意新建一个test.aspx测试页面,复制下面的内容:

 

        protected void Page_Load(object sender, EventArgs e)

        {

            // access连接字符串可以把路径当做变量

            string sConnStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Administrator\Desktop\WebApplication2\WebApplication2\TempFile\data.mdb;Persist Security Info=False";

            // 数据源连接对象

            OleDbConnection con = new OleDbConnection(sConnStr);

            con.Open();

            DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });

            con.Close();

            con.Dispose();

 

            // 遍历所有的表

            string sName = "";

            for (int i = 0, maxI = dt.Rows.Count; i < maxI; i++)

            {

                // 获取第i个Access数据库中的表名

                string sTempTableName = dt.Rows[i]["TABLE_NAME"].ToString();

                sName += string.Format("{0}\n", sTempTableName);

            }

 

            Response.Write(sName);

 

        }

3.浏览页面,页面中会输出表的名称,如下图,不过从输出的表名称可以看出,以【~】开头的表名,都不是真正的表,因此需要过滤掉这些表。


4.Access数据库文件的路径,可以当做一个变量,如果是处理客户端上传的文件,可以先保存到服务器上,然后获取Access数据库连接字符串。

5.获取到了表名称,可以使用select * from tableName,查出来DataTable数据,最后把Access数据库中所有表名和表数据添加到DataSet对象中。

匿名_热心网友
2011-09-29 · TA获得超过719个赞
知道大有可为答主
回答量:3827
采纳率:0%
帮助的人:8379万
展开全部
如图,在IIS中所在站点或虚拟目录查看属性 --主目录-配置--选项中,将启用父路径的选择框选中即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网海1书生
科技发烧友

2011-09-15 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26226

向TA提问 私信TA
展开全部
同一页面肯定可以读取同一数据库的多个表的,这分几种情况:
1、顺序调用多个表(即打开一个表用完后关闭再打开下一个表):
set rs1=server.createobject("adodb.recordset")
rs1.open "select * from news",conn,1,1
do until rs1.eof
'这里显示news表的内容
rs1.movenext
loop
rs1.close
rs1.open "select * from news1",conn,1,1
do until rs1.eof
'这里显示news1表的内容
rs1.movenext
loop
rs1.close
set rs1=nothing

2、同时打开多个表(用不同的记录集对象同时打开多个表):
set rs1=server.createobject("adodb.recordset")
set rs2=server.createobject("adodb.recordset")
rs1.open "select * from news",conn,1,1
do until rs1.eof
rs2.open "select * from news1 where id=" & rs1("id"),conn,1,1
'这里显示news1表中与news表相关的内容
rs2.close
rs1.movenext
loop
rs1.close
set rs2=nothing
set rs1=nothing

3、在同一sql查询中打开多个表(效率稍微高些,但要求多个表之间要有关联字段):
set rs1=server.createobject("adodb.recordset")
rs1.open "select * from news,news1 where news.id=news1.id",conn,1,1
'后面的具体用法我就不写了,可以用rs1("news.title")和rs1("news1.title")来区分不同表的字段
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c1450d4
2011-09-18
知道答主
回答量:97
采纳率:0%
帮助的人:11.3万
展开全部
set rs1=server.createobject("adodb.recordset")
rs1.open "select * from news",conn,1,1
do until rs1.eof
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式