用vb.net做的校友录……(附所有源代码)

源代码

想必大家都上过校友录吧,里面的功能虽然不是很强大,但是为我们这些毕业之后各奔西东的学子来说,到真是提供了一个好的聚集点,下面是我用vb.net做的校友录,当然也不能说是校友录了,只能说是我们班的学友录了:)不过只要你掌握了这种编程思想,校友录就不在话下了。这里我将重点谈一下关于管理员权限赋予。
以前有这个想法的时候,难就难在管理员身份的赋予上,开始想如果一般用户在被提升为管理员之后,我可以把他的信息转到另外一个表中,以后登陆的时候先检查manage表中是否有他就行了,这种办法我已经实现了,是不是有些笨……可是正在我要正式开工的时候,一个想法突然冒了出来,是什么呢?呵呵,就是在数据库中再增加一个字段了如果是第一次注册就让这个字段item(int)的值为0,要是被提升之后就update为1,班级创始人呢?当然了,在他申请时付给他一个班级id,然后先判断班级id为这个已经注册的人信息条数是否为0,如果是,那么就付给他item=2好了。下面的代码中,我没有实现这个功能,因为我做的是班友录的,当然了,我就是管理员喽:)

在这里,我使用的是checkboxlist(两个),一个用来转换数据(visibe=fause),一个用来显示数据,还有一个checkbox用来写全部选中的事件。当然了还有两个按钮事件,一个是用来提升为管理员的,一个是用来降级为一般用户的,这两个按钮在判断为一般用户时
enable都是为fause的,只有当判断登录为管理员时才为true。当然了,如果你是班级创始人,是不可能被降级的:)
这里用来显示信息的我用的是一个datagrid,当判断为非管理员时,删除栏的visible将为fause,为管理员的时候,才为true,也就是说只有管理员才可以删除信息。而不是注册的用户是不能发言的所有的按钮控件的enable将都为fause。
代码如下:board.aspx
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="boaman.aspx.vb" Inherits="_99re1.boaman"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <HEAD>
        <title></title>
        <meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
        <meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
        <meta content="JavaScript" name="vs_defaultClientScript">
        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body background="image/bg.gif" MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <asp:checkbox id="yourcheck" style="Z-INDEX: 101; LEFT: 84px; POSITION: absolute; TOP: 71px" runat="server" Text="全部选中" AutoPostBack="True" ForeColor="SaddleBrown" Font-Bold="True"></asp:checkbox>
            <asp:button id="Button1" style="Z-INDEX: 102; LEFT: 34px; POSITION: absolute; TOP: 43px" runat="server" Text="提升为管理员" Height="20px" Width="100px" BackColor="Gainsboro" BorderColor="Lavender" BorderWidth="2px" BorderStyle="Outset"></asp:button>
            <asp:button id="Button2" style="Z-INDEX: 103; LEFT: 142px; POSITION: absolute; TOP: 43px" runat="server" Text="降级为一般用户" Height="20px" Width="100px" BackColor="Gainsboro" BorderColor="Lavender" BorderWidth="2px" BorderStyle="Outset"></asp:button>
            <asp:checkboxlist id="CheckBoxList1" style="Z-INDEX: 104; LEFT: 14px; POSITION: absolute; TOP: 10px" runat="server" Visible="False"></asp:checkboxlist>
            <asp:checkboxlist id="mycheck" style="Z-INDEX: 105; LEFT: 98px; POSITION: absolute; TOP: 99px" runat="server" ForeColor="Navy" Font-Size="X-Small"></asp:checkboxlist>
            <asp:label id="Label1" style="Z-INDEX: 106; LEFT: 82px; POSITION: absolute; TOP: 14px" runat="server" ForeColor="Red" Font-Names="方正姚体">(已注册用户)</asp:label>
            <asp:image id="Image1" style="Z-INDEX: 107; LEFT: 260px; POSITION: absolute; TOP: 180px" runat="server" Height="124px" Width="221px" ImageUrl="image/99re1-1.gif"></asp:image>
            <asp:datagrid id="DataGrid1" style="Z-INDEX: 108; LEFT: 250px; POSITION: absolute; TOP: 83px" runat="server" Height="113px" Width="461px" BorderColor="#ffcc66" AutoGenerateColumns="False" HeaderStyle-Font-Size="9" HeaderStyle-HorizontalAlign="Center" HeaderStyle-ForeColor="red" HeaderStyle-Font-Bold="True">
                <Columns>
                    <asp:HyperLinkColumn ItemStyle-ForeColor="navy" ItemStyle-HorizontalAlign="Center" ItemStyle-Height="24" ItemStyle-Font-Size="9" DataNavigateUrlField="stu_id" DataNavigateUrlFormatString="querry.aspx?stu_id={0}" DataTextField="stu_id" HeaderText="学号"></asp:HyperLinkColumn>
                    <asp:BoundColumn ItemStyle-ForeColor="navy" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="100" ItemStyle-Font-Size="9" DataField="tel" HeaderText="电话"></asp:BoundColumn>
                    <asp:BoundColumn ItemStyle-ForeColor="navy" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="80" ItemStyle-Font-Size="9" DataField="oicq" HeaderText="OICQ"></asp:BoundColumn>
                    <asp:BoundColumn ItemStyle-ForeColor="navy" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="140" ItemStyle-Font-Size="9" DataField="email" HeaderText="E-mail"></asp:BoundColumn>
                    <asp:BoundColumn ItemStyle-ForeColor="navy" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="60" ItemStyle-Font-Size="9" DataField="point" HeaderText="登录次数"></asp:BoundColumn>
                </Columns>
            </asp:datagrid>
        </form>
    </body>
</HTML>

下面是codebehind中的内容:boaman.asp.vb

Imports System.Data
Imports System.Data.SqlClient
Public Class boaman
    Inherits System.Web.UI.Page
        Protected WithEvents yourcheck As System.Web.UI.WebControls.CheckBox
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    Protected WithEvents CheckBoxList1 As System.Web.UI.WebControls.CheckBoxList
    Protected WithEvents mycheck As System.Web.UI.WebControls.CheckBoxList
    Protected WithEvents Label1 As System.Web.UI.WebControls.Label
    Protected WithEvents Image1 As System.Web.UI.WebControls.Image
    Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
    Protected WithEvents Button2 As System.Web.UI.WebControls.Button

#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region
    Dim conn As SqlConnection = New SqlConnection("server=lixinri;uid=sa;pwd=;database=99re1")
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '////////////////////判断是否为过客
        If Session("stu_id") = "" Then
            Button1.Enabled = False : Button2.Enabled = False
            '////////////////////调用check()事件
            check()
        Else
            If Not IsPostBack Then
                Dim sql As String = "select * from pwd where stu_id=@stu_id"
                Dim comm As SqlCommand = New SqlCommand(sql, conn)
                comm.Parameters.Add(New SqlParameter("@stu_id", SqlDbType.Int, 4))
                comm.Parameters("@stu_id").Value = Session("stu_id")
                Dim dr As SqlDataReader
                conn.Open()
                dr = comm.ExecuteReader
                While dr.Read
                    If dr.Item("term") = "0" Then
                        '///////////////////判断是否为一般用户
                        dr.Close()
                        Button1.Enabled = False : Button2.Enabled = False
                        Dim sql_1 As String = "select a.stu_id as stu_id,a.term,b.name as name,b.tel as tel,b.call as oicq,b.point as point,b.email from pwd a,stu_base b where a.stu_id=b.stu_id"
                        Dim cmd As New SqlCommand(sql_1, conn)
                        dr = cmd.ExecuteReader
                        While dr.Read
                            If dr.Item("term") = "1" Then
                                mycheck.Items.Add("<u>" & dr.Item("name") & "</u>" & "<font color=darkorange>(管理员)</font>")
                            ElseIf dr.Item("term") = "2" Then
                                mycheck.Items.Add("<u>" & dr.Item("name") & "</u>" & "<font color=red>(班级创始人)<font>")
                            Else
                                mycheck.Items.Add("<u>" & dr.Item("name") & "</u>")
                            End If
                            CheckBoxList1.Items.Add(dr.Item("stu_id"))
                        End While
                    Else
                        '////////////////////判断是否为管理员
                        dr.Close()
                        Button1.Enabled = True : Button2.Enabled = True
                        Dim sql_1 As String = "select a.stu_id as stu_id,a.term,b.name as name,b.tel as tel,b.call as oicq,b.point as point,b.email from pwd a,stu_base b where a.stu_id=b.stu_id"
                        Dim cmd As New SqlCommand(sql_1, conn)
                        dr = cmd.ExecuteReader
                        While dr.Read
                            If dr.Item("term") = "1" Then
                                mycheck.Items.Add("<u>" & dr.Item("name") & "</u>" & "<font color=darkorange>(管理员)</font>")
                            ElseIf dr.Item("term") = "2" Then
                                mycheck.Items.Add("<u>" & dr.Item("name") & "</u>" & "<font color=red>(班级创始人)<font>")
                            Else
                                mycheck.Items.Add("<u>" & dr.Item("name") & "</u>")
                            End If
                            CheckBoxList1.Items.Add(dr.Item("stu_id"))
                        End While
                    End If
                End While
                dr.Close()
                '////////////////////////取出数据,填充dataset
                Dim mysql As String = "select a.stu_id as stu_id,a.term,b.name as name,b.tel as tel,b.call as oicq,b.point as point,b.email from pwd a,stu_base b where a.stu_id=b.stu_id"
                comm = New SqlCommand(mysql, conn)
                Dim mycomm As SqlDataAdapter = New SqlDataAdapter(mysql, conn)
                Dim ds As DataSet = New DataSet()
                mycomm.Fill(ds, "base")
                DataGrid1.DataSource = ds.Tables("base").DefaultView
                DataGrid1.DataBind()
            End If
        End If
    End Sub

    '///////////////////////书写check()事件
    Sub check()
        If Not IsPostBack Then
            Dim mysql As String = "select a.stu_id as stu_id,a.term,b.name as name,b.tel as tel,b.call as oicq,b.point as point,b.email from pwd a,stu_base b where a.stu_id=b.stu_id"
            Dim comm As New SqlCommand(mysql, conn)
            Dim dr As SqlDataReader
            conn.Open()
            dr = comm.ExecuteReader
            While dr.Read
                If dr.Item("term") = "1" Then
                    mycheck.Items.Add("<u>" & dr.Item("name") & "</u>" & "<font color=darkorange>(管理员)</font>")
                ElseIf dr.Item("term") = "2" Then
                    mycheck.Items.Add("<u>" & dr.Item("name") & "</u>" & "<font color=red>(班级创始人)<font>")
                Else
                    mycheck.Items.Add("<u>" & dr.Item("name") & "</u>")
                End If
                CheckBoxList1.Items.Add(dr.Item("stu_id"))
            End While
            dr.Close()
            Dim mycomm As SqlDataAdapter = New SqlDataAdapter(mysql, conn)
            Dim ds As DataSet = New DataSet()
            mycomm.Fill(ds, "base")
            DataGrid1.DataSource = ds.Tables("base").DefaultView
            DataGrid1.DataBind()
        End If
    End Sub
    '/////////////////////填充yourcheck
    Private Sub yourcheck_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles yourcheck.CheckedChanged
        Dim i As Integer
        For i = 0 To mycheck.Items.Count - 1
            If yourcheck.Checked Then
                mycheck.Items(i).Selected = True
            Else
                mycheck.Items(i).Selected = False
            End If
        Next
    End Sub

    '///////////////////////提升一般用户为管理员
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        conn.Open()
        Dim i As Integer
        For i = 0 To mycheck.Items.Count - 1
            If mycheck.Items(i).Selected Then
                Dim sql_1 As String = "update pwd set term=1 where stu_id=@stu_id and term=0"
                Dim comm As SqlCommand = New SqlCommand(sql_1, conn)
                comm.Parameters.Add(New SqlParameter("@stu_id", SqlDbType.Int, 4))
                comm.Parameters("@stu_id").Value = CheckBoxList1.Items(i).Text
                comm.ExecuteNonQuery()
            End If
        Next
        Response.Redirect("boaman.aspx")
    End Sub

    '///////////////////////降级管理员为一般用户
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        conn.Open()
        Dim i As Integer
        For i = 0 To mycheck.Items.Count - 1
            If mycheck.Items(i).Selected Then
                Dim sql_1 As String = "update pwd set term=0 where stu_id=@stu_id and term=1"
                Dim comm As SqlCommand = New SqlCommand(sql_1, conn)
                comm.Parameters.Add(New SqlParameter("@stu_id", SqlDbType.Int, 4))
                comm.Parameters("@stu_id").Value = CheckBoxList1.Items(i).Text
                comm.ExecuteNonQuery()
            End If
        Next
        Response.Redirect("boaman.aspx")
    End Sub
End Class

当然了,这里面还有好多不足的地方,恳求高手批评指正。
校友录还有一些其它的功能就很简单了,这里就不再探讨了。
 

时间: 2024-10-21 08:21:05

用vb.net做的校友录……(附所有源代码)的相关文章

基于.net mvc的校友录 四、系统结构图

这是整个系统结构的预览,话不多说,给个图: 本网站努力为每个人提供一个有效的校友录系统,为参与者提供一个简单有效的交流互动的平台,操作上要求简单.高效,性能上要求稳定.可扩展.在对同类网站系统进行了调查之后,通过重新设计,为网站使用者提供了如下的功能操作:管理员可以管理用户.用户可以搜索班级加入班级,进入班级后可以创建相册上传照片,可以留言发表评论,可以查看别人的通讯录发送小纸条,对于自己的上传的照片.相册可以进行删除操作,也可以退出班级,也可以删除自己的留言. 为了满足上面提出的功能需求,本网

我们班的校友录很炫(上)

ChinaRen班级宣言限制了200字, 但是它允许直接使用HTML语句,这就意味着我们可以通过特效HTML语句来让我们的班级宣言炫起来.步骤很简单:只要把HTML特效代码内容粘贴到宣言编辑框内,保存后即可.而HTML语句代码才是问题的所在!不懂任何HTML语句的也不要紧,看完本文,你们班级的校友录一样能炫起来! 一.嵌入网页 基本代码: <Iframe border=0 src="url" frameBorder=0 w idth=440 scrolling=no height

校友录及同学录程序评价

中介交易 SEO诊断 淘宝客 云主机 技术大厅 大学毕业了,在网上找一些同学录程序,架个好做个同学们之间交流,我还记得我第一个同学录是用CC程序架,很不错,编的很复杂,很不容易看懂点,其实同学录程序不是很多,而且基本上都是asp的版本,php,jsp,.NET的基本上没有,为什么会出现这样的情况,我猜想主要是没有钱赚,毕竟同学录是公益性质的,而且访问流量也仅限于同学,不象论坛,社区,分类信息,SNS那样可以找到商业盈利点,以下是我收集同学录程序,以后再添加 1. 风华同学录 (http://ww

QQ就是Facebook(2):从QQ群到校友录

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 上次我写了篇<QQ就是Facebook>,在5g上引发了一些讨论.当时写的都是从大处着手,没有提到细节.今天又看到了QQ校友录的一些动态,忍不住再说几句. 首先说几个细节,QQ群和腾讯推广他的"校友录"的细节: 1.校友录可以和QQ群捆绑. 2.捆绑后可以向QQ客户端发送邀请,邀请同群的人加入校友录. 3.校友

基于.net mvc的校友录 三、实体模型实现

由于是实际开发,而且是时间比较紧的,所以,在开发实现过程中,总有一些对原计划的改动: AlumniBookModel数据库实体模型 这是主数据实体类,EF会根据此实体生成数据库,它的每一个成员都是DbSet类型,这是数据集类型,也就是内存中的表,数据库AlumniBookModel中共有九张表,它们的名字分别是成员的名字,但是,若是打开数据库,就会发现,它们的表名是这些成员名的复数,而这个机制,开篇已经有讲过,这里不再多说.再来看一下它的构造函数: public class AlumniBook

自己用VS2005+ACCESS+VB.NET做了个学员档案管理软件,怎么占资源这么大?

问题描述 自己用VS2005+ACCESS+VB.NET做了个学员档案管理软件,占用内存40M,怎么会这么大?请指教! 解决方案 解决方案二:用到的对象要及时释放解决方案三:正常的,最小化再恢复,可以使内存占用看起来小一些,因为都跑到虚拟内存上去了.解决方案四:不要將大量數據加載到內存裡面解决方案五:使用SqlDataReader读取数据,dataset太在内存了.

ChinaRen校友录酝酿改版

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 据消息人士透露,中国最大的在线校友录ChinaRen,近期正在酝酿一次大规模改版,这将会是三年以来校友录对产品风格等最为重要的一次调整. 在2006年,ChinaRen先后进行过多次二级产品升级. 由于在整个过程中出色地完 成了对"年轻人的大社区"的理念实现,将Web2.0相关技术恰到 好处地引入,并开发推出了新概念的 重

请问如何用vb.net做词法分析器,又详细开发步骤给说说吗?(急急)

问题描述 请问如何用vb.net做词法分析器,又详细开发步骤给说说吗? 解决方案 解决方案二:顶起来先

用VB.NET 做一个程序来控制打印机

问题描述 小弟现在要用VB.NET做一个程序来控制打印机,要实现的功能有:1.是否给用户打印(即如果用户不按照程序要求操作的话,就不给打印):2.保存打印的页数与打印的内容(jpg或pdf格式):现在不知道要从哪个方面入手来控制打印机,求各位高人指点..非常感激.由于小弟没有分,所以没办法给分..望各位慷慨指教..补充:用户在客户机,打印机放在服务机.或用户在服务机也能实现该功能. 解决方案 解决方案二:怎么没人顶啊.哎```解决方案三:友情up解决方案四:一种通过端口信息截获.一种写服务器程序