设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2812|回复: 4
打印 上一主题 下一主题

[Access本身] 【教程】从Access到Asp.net(十)

[复制链接]
跳转到指定楼层
1#
发表于 2006-8-16 08:52:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
       本着时间过半任务过半的原则,我们今天完成mini网上商城的后台制作,其实截止到昨天为止,直接显示的页面我们都已经完成了,只是还少一个类似access中报表的那个东西,要能打印出相关订单明细,提供给仓库发货:
【直接输出窗体】
        根据access的设计我们知道,报表来自于一个复杂的查询,同时还要再报表中进行分层和分组,而在asp.net中没有报表控件,我们用一些VB语句来直接控制数据的输出,让它出现分层和分组:
        先添加一个web窗体,命名为saleinfo.aspx,然后再它的加载事件中先模拟一个订单号:                                         Dim myid As String
myid = "200607040024"
然后建立加载过程:那个复杂的查询语句就来自于我们的access小样:通过Response.Write输出了一些带有html标记文本以及数据到页面上,这些html标记会被编译为要显示的控件: <A href=javascript:print()>打印</A>调用了ie浏览器上的打印按钮。
   Sub BindRed(ByVal myid As String)
        Dim mysql As String
        mysql = "SELECT tab_Pinfo.pname,tab_Pinfo.pkinds, tab_Pinfo.price, tab_Pinfo.lprice ,tab_salerecord.pcount,tab_Pinfo.lprice*tab_salerecord.pcount AS msum" _
        & ",tab_salerecord.lid, tab_salerecord.uid, tab_userinfo.uname,tab_userinfo.address" _
        & " FROM (tab_Pinfo INNER JOIN tab_salerecord ON tab_Pinfo.id = tab_salerecord.pid) INNER JOIN tab_userinfo ON tab_salerecord.uid = tab_userinfo.Id" _
        & " WHERE tab_salerecord.lid='" & myid & "'"
        mycon.Open()
        Dim mycmd As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(mysql, mycon)
        Dim dt As Data.DataSet = New Data.DataSet
        mycmd.Fill(dt)
        '输出到表
        Dim ta As DataTable
        ta = dt.Tables(0)
        '输出
        Response.Write("定单号:" & ta.Rows(0).Item("lid"))
        Response.Write("<br>")                                           '<br>是断行标签
        Response.Write("姓名:" & ta.Rows(0).Item("uname"))
        Response.Write("<br>")
        Response.Write("地址:" & ta.Rows(0).Item("address"))
        '建立表格
        Dim i, j
        Response.Write("<table  Width=528px border=1 BorderColor=Black >")
        Response.Write("<tr align=center>")
        Response.Write("<td>商品名称")
        Response.Write("</td>")
        Response.Write("<td>种类")
        Response.Write("</td>")
        Response.Write("<td>单价")
        Response.Write("</td>")
        Response.Write("<td>折扣价")
        Response.Write("</td>")
        Response.Write("<td>数量")
        Response.Write("</td>")
        Response.Write("<td>金额")
        Response.Write("</td>")
        Response.Write("</tr>")
        For i = 0 To ta.Rows.Count - 1                                   '用循环添加所有的行
            Response.Write("<tr>")
            Response.Write("<td>" & ta.Rows(i).Item(0))                                '名称
            Response.Write("</td>")
            Response.Write("<td>" & ta.Rows(i).Item(1))                                '种类
            Response.Write("</td>")
            Response.Write("<td>¥" & Format(ta.Rows(i).Item(2), "#.00"))              '单价
            Response.Write("</td>")
            Response.Write("<td>¥" & Format(ta.Rows(i).Item(3), "#.00"))             '折扣价
            Response.Write("</td>")
            Response.Write("<td>" & ta.Rows(i).Item(4))                                '数量
            Response.Write("</td>")
            Response.Write("<td>¥" & Format(ta.Rows(i).Item(5), "#.00"))              '金额
            Response.Write("</td>")
            Response.Write("</tr>")
        Next i
        Response.Write("<tr>")                     '行
        Response.Write("<tr>")
        Response.Write("<td>")
        Response.Write("</td>")
        Respons

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖1 订阅订阅
2#
 楼主| 发表于 2006-8-16 08:55:00 | 只看该作者
【使用cookies储存用户信息】
前台的登录按钮我们发生了一些变化:改用md5来验证密码,同时用cookies来储存用户信息
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim myconstr As String = ConfigurationSettings.AppSettings("constr") & Server.MapPath(".") & ConfigurationSettings.AppSettings("dbs")
        Dim mysql As String
        Dim mycon As OleDb.OleDbConnection = New OleDb.OleDbConnection(myconstr)
        mycon.Open()
        If TextBox1.Text = "" Or TextBox2.Text = "" Then
            Labelmsg.Text = "请填写正确的用户名和密码,若尚未注册请先注册"
        Else
            mysql = "select * from tab_admininfo where sname='" + TextBox1.Text + "'"
            Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
            Dim myrs As OleDb.OleDbDataReader
            myrs = mycmd.ExecuteReader()
            myrs.Read()
            If TextBox1.Text = myrs("sname") Then
                'If TextBox2.Text = myrs("spwd") Then     '这是使用md5加密前的写法
                Dim pwdmd5 As String = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text, "MD5")
                If pwdmd5 = myrs("spwd") Then
                    Response.Cookies("name").Value = myrs("sname")   '使用cookie存储姓名
                    Response.Cookies("pro").Value = myrs("spro")    '使用cookie存储权限
                    Response.Redirect("admin_mat.htm")
                Else
                    Labelmsg.Text = "请输入正确的密码"
                End If
            Else
                Labelmsg.Text = "你还没有注册,请先注册"
            End If
        End If
        mycon.Close()
    End Sub
最后在页面加载事件中写:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
        Dim myid As String
        'myid = "200607040024"    '调试时候用的
        myid = Request("id")      '用来存放订单号
        BindRed(myid)
    End Sub

       同时我们在各个窗体的加载事件中来验证登录者的权限,比如下列代码,"NOpro.htm"是一个出错提示页面,就是如果权限不够就转去提示页面。
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
        If Request.Cookies.Get("pro").Value = "3" Then
            Response.Redirect("NOpro.htm")
            Exit Sub
        End If
【小结】
本章我们应该掌握了下列对象:
Cookies对象:用来记录客户的登录信息
Request对象:用来获取前方页面传过来的参数
DataTable对象:ado.net里面的数据表
Web页面的打印命令

Ok,后台设计完了,我应该没漏下什么吧?记得备份你的文件哦。
3#
发表于 2006-8-18 03:53:00 | 只看该作者
好呀,继续.
4#
发表于 2006-11-23 04:49:00 | 只看该作者
加油
!
5#
发表于 2009-12-13 20:05:47 | 只看该作者
级压群芳的无敌贴!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-29 17:02 , Processed in 0.093426 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表