设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 情比金坚
打印 上一主题 下一主题

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

[复制链接]
11#
发表于 2006-9-3 07:27:00 | 只看该作者
能否教教数据绑定的下拉框步骤?
10#
发表于 2006-9-3 07:04:00 | 只看该作者
哈哈,是我太菜不懂在事件中加:dropdownlist_add()

谢谢!
9#
 楼主| 发表于 2006-9-1 11:17:00 | 只看该作者
但从一个页面分析不出来你的意图。下拉框的数据加载其实就是一个循环的过程。
8#
发表于 2006-9-1 05:30:00 | 只看该作者
我跟着做个下拉框,可是不能加载数据,能帮我看看改改吗?


本帖子中包含更多资源

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

x
7#
发表于 2006-8-18 03:56:00 | 只看该作者
真的很好.
6#
发表于 2006-8-15 18:35:00 | 只看该作者
啊  看的不是很清楚

有没有整套教程
5#
发表于 2006-8-15 17:13:00 | 只看该作者
xie xie!
4#
 楼主| 发表于 2006-8-15 09:27:00 | 只看该作者
【编辑商品信息】
        和添加商品信息是一样的,只是把追加查询改为更新查询,这里我只是给出打开编辑商品信息的代码:他在一个新窗口里被打开:
Response.Write("<script language='javascript'>open('pinfo_edit.aspx?id=" & id & "','编辑','width=500,height=400,left=150,top=150,resizable=0,scrollbars=0,status=no,toolbar=no,location=no,menu=no')</" & "script>")
【datagrid的批量更改】
        又回到datagrid来了,没错,我说过datagrid是asp.net中最复杂的控件,我们在datagrid中添加一个复选框,被选中的就被更改:这个复选框是如何被添加进去的呢?前面已经说过了:就是用模版编辑功能:

    '修改订单状态事件
    Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
        Dim tate As String
        tate = DropDownList1.SelectedItem.Text
        Dim objch As CheckBox
        Dim item As DataGridItem
        For Each item In DataGrid1.Items
            objch = item.FindControl("checkbox1")
            If objch.Checked = True Then
                Dim mylist As String
                mylist = item.Cells(0).Text
                Dim mysql As String
                mysql = " UPDATE tab_salelist SET lstate='" & tate & "' where listid='" & mylist & "'"
                mycon.Open()
                Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
                mycmd.ExecuteNonQuery()
            End If
        Next
        Response.Write("<script>alert('\n 修改成功 \n');</script")
        BindGrid()
End Sub
【datagrid的筛选】
       筛选的实现我们在access里已经很明确了,就是更改数据源就行了,这里要说给大家听的是,在asp.net里面,储存一些公用变量要用的一些对象,这里我们用的是:viewstate
这个对象在本页面关闭以后就随之消失了:看看我的用法:
'筛选
    Private Sub DropDownList2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList2.SelectedIndexChanged
        Dim mytate As String
        mytate = DropDownList2.SelectedItem.Text
        If mytate = "全部" Then
            viewstate("sql") = "SELECT * FROM tab_salelist "
        Else
            viewstate("sql") = "SELECT * FROM tab_salelist  where lstate='" & mytate & "'"
        End If
        BindGrid()
    End Sub
【小结】
今天我们学习了:
在datagrid里显示货币的符号,以及格式表达式的相关知识
在datagrid里显示多行文本的办法,以及datagrid的模版编辑功能
在datagrid里实现筛选
在datagrid里实现批量更新
在新窗口中打开指定页面
浏览文本框的使用
添加图片的方法
Dropdownlist的数据加载方法
Asp.net中错误陷阱的写法

[此贴子已经被作者于2006-8-15 1:28:32编辑过]

3#
 楼主| 发表于 2006-8-15 09:23:00 | 只看该作者
【图片的添加】



我们在access上图片用的是链接,数据库只是储存链接地址,这个相对简单,直接指定地址就对了。可是现在图片是储存于别的电脑上的啊,所以要先把图片上传给服务器,然后返回地址。
那么我们用于打开本地对话框的办法是啥呢?access里我们有函数,也有控件(office2003以后),在asp.net我们用的是:file field他是一个html控件:
    '函数:上传商品图片信息,返回服务器中的图片路径
    Function upimg(ByVal file As Object) As String
        Dim s1 As String   '图片的格式
        Dim s2() As String   '原图片的地址,用"\"分割为数组
        Dim s3 As String   '上传后图片的名称,以年月日时分秒来命名
        If file.PostedFile.ContentLength > 0 Then
            s2 = file.PostedFile.FileName.Split("\")
            s1 = Right(s2(s2.Length - 1), 4)
            If s1 = ".jpg" Or s1 = ".JPG" Or s1 = ".GIF" Or s1 = ".gif" Then
                s3 = Format(Now(), "yyyyMMddHHmmss") + s1
                file.PostedFile.SaveAs(Server.MapPath(".") + "\images\" + s3)
                upimg = "images\" + s3
            End If
        Else
            upimg = ""
        End If
    End Function


最后把商品信息添加到数据库里去:
    '添加按钮的事件
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim imgstr, spname, spkind, sprice, slprice, spcount, spmsg As String
        If upimg(file1) = "" Then
            imgstr = "\images\noimges.jpg"
        Else
            imgstr = upimg(file1)
        End If
        spname = TextBox1.Text
        spkind = DropDownList1.SelectedValue
        sprice = TextBox2.Text
        slprice = TextBox3.Text
        spcount = TextBox4.Text
        spmsg = TextBox6.Text
        Dim mysql As String
        mysql = "INSERT INTO tab_pinfo(pname,pkinds,price,lprice,pcount,pimg,pmsg) VALUES ('" _
        & spname & "','" & spkind & "'," & sprice & "," & slprice & "," & spcount & ",'" & imgstr & "','" & spmsg & "')"
        mycon.Open()
        Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
        'Response.Write(mysql)     '显示sql字符串,看看写错没有
        '错误陷阱
        Try
            mycmd.ExecuteNonQuery()
            Response.Write("<script>alert('\n 添加成功 \n');</script")
        Catch ex As Exception
            mycon.Close()
            Response.Write(ex.Message)
        Finally
            mycon.Close()
        End Try
    End Sub






[此贴子已经被作者于2006-8-15 1:24:57编辑过]

本帖子中包含更多资源

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

x
2#
 楼主| 发表于 2006-8-15 09:21:00 | 只看该作者
【DropDownList】
     昨天内容不多,大家应该自己又尝试设计一些吧,根据我们的access小样,在商品信息添加窗体里,关于商品类别的,我们需使用下拉框来选择,那在.net里面怎样对下拉框添加数据呢?关于下拉框在哪里,我就不用说了吧?
同样,我们的下拉框数据是通过ado.net动态添加的:
'获得商品类别信息
    Sub dropdownlist_add()
        Dim mysql As String
        mysql = "select pkinds from tab_pkinds order by id"
        mycon.Open()
        Dim mycmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(mysql, mycon)
        Dim myrs As OleDb.OleDbDataReader
        myrs = mycmd.ExecuteReader
        DropDownList1.Items.Clear()
        Do While myrs.Read
            DropDownList1.Items.Add(myrs("pkinds"))
        Loop
        myrs.Close()
        mycon.Close()
End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-21 18:05 , Processed in 0.747295 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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