在开发论坛时,会遇到要从数据库多张表中读取所需的数据,像一些贴数,回复数啦,还有今日发多少贴,版主,子版什么的,在asp.net时要用到什么数据库件可以达到读取多呀??
我自己试过用DataSet,可是感觉麻烦呀,要编写很多操作,可以感觉不怎么好,我用的数据库是用MySql
我有问老师,他说是GridView+MSSQL就可以达到上面的效果,可是我在网上找些范例看看,可是都没找,希望各位前辈可以帮帮忙,先谢谢!

解决方案 »

  1.   

    GridView,Datalist都可以就是要用内存数据库装载呀.要不你用DataReader 一条一条读 
      

  2.   

    1,不推荐在前台用GridView。建议Repeater
    2,论坛的基本功能实现起来都很简单,但要考虑数据库的设计
    3,用DataSet,DataTable,DataReader,List<Model>都可以,代码量都不大,你可以考虑使用一些数据库组件来简化你的代码,例如:SqlHelper等。
      

  3.   

    SQL Server 日期统计
    该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=31879
    产品销量统计
    该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=31910SQL 中的统计应用
    该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=31367
    SQL统计语句收集
    该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=31434
      

  4.   

    SQL Server 日期统计
    该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=31879
    产品销量统计
    该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=31910SQL 中的统计应用
    该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=31367
    SQL统计语句收集
    该文章转载自德仔工作室:http://www.dezai.cn/article_show.asp?ArticleID=31434
      

  5.   

    一个基本论坛,主要两张表就可搞定,给楼主参考一下表的字段:
    1.Topic(主贴表)
    topic_Id       (主贴id)
    topic_title    (主贴题目)
    userName      (主贴用户名)
    publish_time  (发布时间)
    push_count]   (点击数)
    follow_count  (跟贴数)
    last_time     (最后更新时间)2.Topic_follow(跟贴表)
    id            (跟贴id)
    topic_id       (参照主贴id)
    user_Name     (跟贴用户名)
    topic_text    (跟贴内容,第一条是主贴内容)
    publish_time] (跟贴发布时间)
      

  6.   

    我也试过用一些视图连接,可是它输出的时候会把整个相关连的全部输出,而且即使用了不充许重复的输出照样全部输出呀,join好象也不行大家可不可以给个模式看看呀
      

  7.   


    /*用户表*/ /*0为VIP用户,1为普通用户*/
    create table JT_user(
    uID int unsigned auto_increment,
    uName nvarchar(50) not null,
    uPass nvarchar(50) not null,
    utName nvarchar(20) not null,
    uSex nchar(2),
    uBir nchar(8),
    uConNum nvarchar(20),
    uNum nvarchar(20),
    uQQ bigint(10),
    uImg nvarchar(200),
    uEmail nvarchar(50),
    uAddr nvarchar(100),
    uConAddr nvarchar(100),
    uUrl nvarchar(50),
    uUserTypeID int unsigned default 1,
    primary key(uID)
    ) ;/*版块信息*/
    create table tb_Module(
    bk_ID int unsigned auto_increment,
    bk_Name nvarchar(100) not null,
    primary key(bk_ID)
    );/*贴子信息表*/
    create table t_Card(
    t_ID int unsigned auto_increment,
    t_Name nvarchar(200) not null,
    t_bk_ID int(8) not null,
    t_note text not null,
    t_date datetime not null,
    t_uName nvarchar(50) not null,
    primary key(t_ID)
    );/*回贴信息表*/
    create table r_Card(
    r_bk_ID int(8) not null,
    r_ID int unsigned auto_increment,
    /*r_t_Name nvarchar(200) not null,*/
    r_t_ID int(8) not null,
    r_date datetime not null,
    r_note text not null,
    r_uName nvarchar(50) not null,
    primary key(r_ID)
    );/*版主信息表*/ /*3为版主信息*/
    create table tb_Host(
    hID int unsigned auto_increment,
    hName nvarchar(50) not null,
    hPass nvarchar(50) not null,
    htName nvarchar(20) not null,
    hSex nchar(2),
    hBir datetime,
    hConNum nvarchar(20),
    hNum nvarchar(20),
    hQQ bigint(10),
    hImg nvarchar(200),
    hEmail nvarchar(50),
    hAddr nvarchar(100),
    hConAddr nvarchar(100),
    hUrl nvarchar(50),
    h_bk_ID int(8),
    hUserTypeID int unsigned default 3,
    primary key(hID)
    ) ;
    //这是我里面的四张表,有些还没有考虑清楚,因为刚学写BBS,所以有些模块还不能搞清楚呀..我想模仿像bbs.51aspx.com那样,可是我总不能使用控件来实用,拜托各位帮帮忙,怎么设计论坛后台数据才能更合理化..
      

  8.   

    我试过了用视图创建来连接各个数据表之间的联系,可是有时候读出来会出现读取过多呀..
    那你们谁有空,可不可以帮我上面像bbs.51aspx.com首页那样全部读取出来,
    就是在一个版\里面读取名版名,版主,主题数,回复数,今日发贴量,最后回复这些,可以么???
      

  9.   

    select 字段一,字段二,字段三。。
    from 表一 leftjoin
    (
    select count(*) as 字段二,字段三
    from 表一,表二
    groupby条件
    )as table (left join.....)
    on 表一.字段 = table.字段我做的一个关于活动信息情况的提取,多少人接受,多少人回复,多少人未回复,
    不知道你能不能用的上,如果字段多后面还可以继续连接,最后生成一张视图
      

  10.   

    join或者子查询,临时表等等,都可以实现的
      

  11.   

    用试图,存储过程,或inner join   on 都是可以的呀
      

  12.   


    select t1.*,t2.HNameA,t3.TNum,t4.RNum,t5.r_ID,t5.r_uName,t5.r_date,t5.r_t_ID from tb_module t1
    left join (select h_bk_ID,hName as HNameA from tb_Host group by h_bk_ID)t2 on t1.bk_ID = t2.h_bk_ID 
    left join (select t_bk_ID,count(t_ID) as TNum from t_Card group by t_bk_ID)t3 on t1.bk_ID = t3.t_bk_ID
    left join (select r_bk_ID,count(r_ID) as RNum from r_Card group by r_bk_ID)t4 on t1.bk_ID = t4.r_bk_ID
    left join (select r_bk_ID,r_uName,r_ID,r_date,r_t_ID from r_Card group by r_bk_ID)t5 on t1.bk_ID = t5.r_bk_ID
    ;各位老前辈,我已经完成的差不多了,只是最后读取最后回复的时候不能读取出最后的,只能读取出最早发表的一个呀,要怎么写才能得到最后每个区最后回复的
      

  13.   

    用left join 和inner join 就行
      

  14.   


    select t1.*,t2.HNameA,t3.TNum,t4.RNum,t5.r_ID,t5.r_uName,t5.r_date,t5.r_t_ID from tb_module t1
        left join (select  回复时间,h_bk_ID,hName as HNameA from tb_Host group by h_bk_ID)t2 on t1.bk_ID = t2.h_bk_ID 
        left join (select 回复时间,t_bk_ID,count(t_ID) as TNum from t_Card group by t_bk_ID)t3 on t1.bk_ID = t3.t_bk_ID
        left join (select 回复时间,r_bk_ID,count(r_ID) as RNum from r_Card group by r_bk_ID)t4 on t1.bk_ID = t4.r_bk_ID
        left join (select 回复时间,r_bk_ID,r_uName,r_ID,r_date,r_t_ID from r_Card group by r_bk_ID)t5 on t1.bk_ID = t5.r_bk_IDorder by t1.回复时间 desc
    ;
      

  15.   

    我在我上面代码上最后加上 order by t5.r_id desc;  显示的还是每个版块最早回复的ID,而且版块的顺序也颠倒,变成了从大往小了
      

  16.   

    哈。自已学学SQL吧。
    不是那样的,我要读取的是论坛首页要显示的每个版块最后回复的主题和回复用户,而且你上面回复时间我用的是版块的ID的,所以不能..
    反正总有一个时候字段吧?
    按它倒序排
      

  17.   

    基本的SQL方面的东西,估计这个帖子是接不了了,感觉大家煞费苦心的跟帖...