注册 登录
编程论坛 ASP.NET技术论坛

问一个很低级的问题(希望高手快速解决)

雪雨星风 发布于 2008-07-01 11:17, 2367 次点击
我有一个发贴表

发贴ID    发贴人    发贴时间     
1                  A            2008
2                  A            2008
3                  A            2008
4                  A            2008
5                  A            2008
6                  A            2008
7                  A            2008
8                  A            2008
前台我想看到 A的总发贴量  发贴人   发贴时间
sql语句怎么写
select count(*) from 发贴表 where 发贴人 = 1  ---A的总发贴量
select  发贴人 发贴时间 from 发贴表         
我没有建总发贴量那个字段   以前做过现在忘了    请高手速回复
43 回复
#2
tomtory2008-07-01 11:28
select count(*) as nun, 发贴人 from 发贴表 where 发贴人 = 1 group by 发贴人
#3
雪雨星风2008-07-01 11:36
select count(*) as num from 发贴表 where 发贴人 = 1  ---A的总发贴量
select  发贴人 发贴时间 from 发贴表   
这两个查询怎么合到一起?
查询的结果
num 发贴人 发贴时间
 8    A       2008
#4
tomtory2008-07-01 11:40
发贴时间  这个字段是不一样的  是聚合不了的哈
如果你吧发帖时间加进去了的话  哪么查出来的就是多条记录
#5
雪雨星风2008-07-01 11:42
发贴人  和发贴总量  可以聚合吗
#6
雪雨星风2008-07-01 11:48
你看一下这个
select uf_card_title,uf_card_userid,uf_card_addtime,uf_card_visitquantity from uf_card where uf_card_top = 1
select count(*) as uf_recard_htnum from uf_recard where uf_recard_cardid = 1 --回复贴数
select top 1 uf_recard_userid,uf_recard_addtime from uf_recard order by uf_recard_addtime desc
这三个查询分别查出了我想要的数据
但是我前台gridview里需要显示的字段是
uf_card_title  --帖子标题
uf_card_userid  --发贴者ID
uf_card_addtime  --发贴时间
uf_card_visitquantity   --帖子点击量
uf_recard_addtime  --回帖时间
uf_recard_userid   --回帖者ID
uf_recard_htnum    --回帖量
#7
tomtory2008-07-01 11:57
字段中的东西一样怎么聚合得了的哦!!
比如说uf_card_title字段里面的值
标题是不一样的
是不可能把它聚合的

你要实现你那个功能

看一下子查询是否可行
#8
雪雨星风2008-07-01 12:04
我试了  没查出来
#9
青格儿2008-07-01 12:16
发贴时间不是确定的年月日,时分秒吧?这样的话,肯定查不出来。要是只统计年月日还行。
要聚合在一起,可以用group by 发贴人,year(CreateTime)
select UserName,datepart(month,CreateTime),datepart(year,CreateTime),Count(*) from Question group by year(CreateTime),month(CreateTime),UserName
#10
雪雨星风2008-07-01 12:19
select top 1 uf_recard_userid,uf_recard_addtime from uf_recard order by uf_recard_addtime desc
发贴时间是确定的日期   格式为 年月日时分秒
#11
雪雨星风2008-07-01 12:21
我怎么写 查询才能查到这个表
uf_card_title uf_card_userid uf_card_addtime uf_card_visitquantity uf_recard_addtime  uf_recard_userid   uf_recard_htnum
#12
tomtory2008-07-01 13:10
分开查嘛  你这样是无法聚合的  聚合是将所有相同的记录聚合成一条记录
#13
tomtory2008-07-01 13:11
先把要查的值查出来  然后在查询要查的人发帖的总数
#14
青格儿2008-07-01 13:19
哎,我说的不是格式是年月日,时分秒,而是你不会统计总数量(一年?一天,一月?)总不会是按年月日,时分秒统计贴子总数量吧?我写那个是按年月统计每个人的发贴总数
#15
雪雨星风2008-07-01 14:23
绑定gridview时怎么写三个查询能填充到一个dataset里吗
#16
雪雨星风2008-07-01 14:27
要绑定3次吗
#17
tomtory2008-07-01 14:49
不是
理解错误

你先把你的详细内容绑定到gridview中

然后根绝先前给你解决datalist中的那种方法把每个人对应的发布信息条数绑定进去
你那个datalist是在Header里面
这个是在Item里面

就是将if (e.Item.ItemType == ListItemType.Header)这句修改为
if (e.Item.ItemType == ListItemType.Item)

然后在这里面给它赋值
#18
雪雨星风2008-07-01 15:11
了解

高手
#19
雪雨星风2008-07-01 15:15
顺便问你一句控件绑定的问题
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Header)
            {
                Control objControl = e.Item.FindControl("LinkButton1");
                if (objControl != null)
                {
                    LinkButton likbtn = (LinkButton)objControl;
                    //这就是要得到的值了哈
                    likbtn.Text = "郁闷";
                }
                Control objControl1 = e.Item.FindControl("LinkButton2");
                if (objControl1 != null)
                {
                    LinkButton likbtn = (LinkButton)objControl1;
                    //这就是要得到的值了哈
                    likbtn.Text = "试试";
                }
            }
        }



if (objControl1 != null)
{
    Response.Write("这个判断有什么用啊!我没写,不会对程序造成太大的影响吧");
}
#20
tomtory2008-07-02 09:32
有用的哈 呵呵
这个是判断控件找到没有  如果没有找到
objControl1 如果登陆null的话
在LinkButton likbtn = (LinkButton)objControl;这里转换为LinkButton的时候就要报错  会出现黄页面的哈 呵呵

在项目里面是不允许出现黄页面的

黄页面就是报错的那个页面
#21
tomtory2008-07-02 09:33
按照正规的写法
你还是把它加起的好  这是习惯问题
尽量减少在项目中出现黄页面的几率
#22
雪雨星风2008-07-02 10:06
try 一下不也可以吗   我如果那样写的话每个控件都要写  我绑定的空间多的话就会很麻烦
#23
tomtory2008-07-02 10:12
我晕
在项目中尽量少用try

即使多你也也得写 这是写程序的习惯问题  有写东西即使麻烦你也得这样的写
这是不可避免的

用try的话比较耗性能的哈
一个项目中尽量少用这个玩意儿   除非必需要用到它  否则就不用

还有  你直接给整个代码加try  哪么你那句代码出错它就会从那句直接跳出去了  后面的代码不会运行
#24
雪雨星风2008-07-02 10:15
哦   了解
#25
雪雨星风2008-07-02 10:16
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
        HorizontalAlign="Center" Width="100%" PageSize="18">
        <Columns>
            <asp:BoundField DataField="UF_BLESSING_ID" DataFormatString="{0:d}" HeaderText="福字编号" >
                <HeaderStyle HorizontalAlign="Center" />
            </asp:BoundField>
            <asp:BoundField DataField="UF_BLESSING_NAME" DataFormatString="{0:d}" HeaderText="祝福人" />
            <asp:BoundField DataField="UF_BLESSING_CONTENT" DataFormatString="{0:d}" HeaderText="祝福语" />
            <asp:BoundField DataField="UF_BLESSING_TIME" DataFormatString="{0:d}" HeaderText="祝福时间" />
        </Columns>
        <PagerTemplate>
            共<asp:Label ID="Label1" runat="server" BackColor="Transparent" BorderColor="Transparent"
                BorderStyle="None" Text="Label"></asp:Label>条祝福,分<asp:Label ID="Label2" runat="server"
                    BackColor="Transparent" BorderColor="Transparent" BorderStyle="None" Text="Label"></asp:Label>页显示,每页<asp:Label
                        ID="Label3" runat="server" BackColor="Transparent" BorderColor="Transparent"
                        BorderStyle="None" Text="Label"></asp:Label>条,<asp:LinkButton ID="LinkButton1" runat="server"
                            BackColor="Transparent" BorderColor="Transparent" BorderStyle="None" OnClick="LinkButton1_Click">[首页]</asp:LinkButton>
            <asp:LinkButton ID="LinkButton2" runat="server" BackColor="Transparent" BorderColor="Transparent"
                BorderStyle="None" OnClick="LinkButton2_Click">[上一页]</asp:LinkButton>
            <asp:LinkButton ID="LinkButton3" runat="server" BackColor="Transparent" BorderColor="Transparent"
                BorderStyle="None" OnClick="LinkButton3_Click">[1]</asp:LinkButton>
            <asp:LinkButton ID="LinkButton4" runat="server" BackColor="Transparent" BorderColor="Transparent"
                BorderStyle="None" OnClick="LinkButton4_Click">2</asp:LinkButton>
            <asp:LinkButton ID="LinkButton5" runat="server" BackColor="Transparent" BorderColor="Transparent"
                BorderStyle="None" OnClick="LinkButton5_Click">3</asp:LinkButton>
            <asp:LinkButton ID="LinkButton6" runat="server" BackColor="Transparent" BorderColor="Transparent"
                BorderStyle="None" OnClick="LinkButton6_Click">4</asp:LinkButton>
            <asp:LinkButton ID="LinkButton7" runat="server" BackColor="Transparent" BorderColor="Transparent"
                BorderStyle="None" OnClick="LinkButton7_Click">5</asp:LinkButton>
            <asp:LinkButton ID="LinkButton8" runat="server" BackColor="Transparent" BorderColor="Transparent"
                BorderStyle="None" OnClick="LinkButton8_Click">>></asp:LinkButton>
            <asp:LinkButton ID="LinkButton9" runat="server" BackColor="Transparent" BorderColor="Transparent"
                BorderStyle="None" OnClick="LinkButton9_Click">[下一页]</asp:LinkButton>
            <asp:LinkButton ID="LinkButton10" runat="server" BackColor="Transparent" BorderColor="Transparent"
                BorderStyle="None" OnClick="LinkButton10_Click">[尾页]</asp:LinkButton><a href="#"></a><a href="#"></a><a href="#"></a><a href="#"></a><a href="#"></a>
            <asp:LinkButton ID="LinkButton11" runat="server">LinkButton</asp:LinkButton>
        </PagerTemplate>
        <PagerStyle Height="30px" HorizontalAlign="Right" VerticalAlign="Middle" />
        <HeaderStyle Height="30px" HorizontalAlign="Center" VerticalAlign="Middle" />
        <RowStyle Height="20px" />
    </asp:GridView>
帮忙看下这个有问题没   运行后linkbutton不让点击
#26
雪雨星风2008-07-02 10:17
让我弄的超级无语
#27
雪雨星风2008-07-02 10:21
页面显示后 后台代码运行正常  
就是按钮不让点击   是不是VS出问题了
#28
tomtory2008-07-02 10:28
确实是超级无语  我

我记得说了很多次了的嘛

当控件在数据容器中的时候  

就是说当那个LinkButton在GridView中的时候  是不能直接给它添加方法的
就是OnClick="LinkButton10_Click"这个东西

当它控件在GridView里面  后台是不能直接找到LinkButton的

要写到GridView的事件中
#29
雪雨星风2008-07-02 10:38
GridViewRow gvr = GridView1.BottomPagerRow;
        ((Label)gvr.Cells[0].FindControl("Label2")).Text = GridView1.PageCount.ToString();
这样就可以啊
#30
雪雨星风2008-07-02 10:42
你理解错了
linkbutton默认情况下鼠标经过时会出现下划线并变红  点击会向服务器提交刷新页面对吧
我现在的情况是 我鼠标经过时linkbutton没反映  点击更没反映 就向你点击
鼠标经过根本不出现小手
#31
tomtory2008-07-02 10:48
这样的哦  那你看看是否把它禁用了
#32
雪雨星风2008-07-02 10:49
全是启用状态   启用和不起用颜色都不一样
#33
tomtory2008-07-02 10:54
那就不知道了 我没有用过GridView哦  呵呵 你在找找的嘛
#34
tomtory2008-07-02 10:56
PagerTemplate这个在里面属于什么
#35
雪雨星风2008-07-02 11:05
分页模版
#36
雪雨星风2008-07-02 11:14
大哥  EnableEventValidation="false" 这个是什么东西
为什么我有时在源代码中不加它就错误
#37
tomtory2008-07-02 11:18
怎么会呢  不加它也不会错的啊

指示是否应验证回发事件数据

你到百度搜索也找得到的啊

还有也可以到MSDN中找的啊 我晕
#38
tomtory2008-07-02 11:19
不过就是不加也不会报错的啊!!
麻木的
#39
雪雨星风2008-07-02 11:40
有的时候不加不报错  有的时候不加就报错
真强悍
#40
tomtory2008-07-02 11:45
反正有原因 不过不是很了解 呵呵  你去查查嘛  嘿嘿
别忘查了发上来的哈
#41
雪雨星风2008-07-02 11:50
我现在我也很郁闷
我现在对代码的运行顺序还不是很了解
就是我按F5后到底VS2005是怎么运行的  都运行了什么
#42
tomtory2008-07-02 12:04
在网上去搜索  多的是
#43
雪雨星风2008-07-03 10:43
遇到个数据库问题
在用户表中有   用户登陆名   用户呢称
它们在数据库中都需要是唯一的
它们都是varchar
我把它们都共同做成主键了
但是不行
如何做才能让他们只有都不重复的时候才能插入数据
#44
雪雨星风2008-07-03 10:45
SQL 都说要多看看联机丛书   但我并不这样认为
我是初学者的话  想要一个效果  比如聚合涵数
我根本就不知道那个涵数怎么写  甚至我根本不知道有这个涵数 我怎么查
你能给我推荐一中适合我这样水平的学习方法吗
1