web is easy!

新传的web综合技术博客 javascript php asp web2.0 QQ:3608194

导航

ajaxwebshop3 .NET表格数据增,删,改操作实例

AJAX有机地包含了以下几种技术: 基于web标准(standards-based presentationXHTML+CSS的表示; 使用 DOMDocument Object Model)进行动态显示及交互; 使用 XML XSLT 进行数据交换及相关操作; 使用 XMLHttpRequest 进行异步数据查询、检索;使用 JavaScript 将所有的东西绑定在一起。最大的特点就是能够实现页面或数据的无刷新操作。类似于DHTMLLAMPAJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。

 AJAX作为做一种新兴而实用的web技术,已经越来越受到人们的广泛关注,AJAX开发有没有什么工具呢?如果不是十分了解dhtmljavascript等技术是不是就不能做AJAX开发呢?说到AJAX开发工具,就不能不提到joyistar WebShop了,它是一个完全可视化的AJAX技术开发环境。并且即使你暂时不是很清楚AJAX相关技术也可以进行基本的 web开发,下面就是笔者用webshop3.0做的一个简单的数据查询和对数据的增,删,改以及检索的实例。

 

功能介绍: WebShop3.0版本在支持java开发的基础上开始已支持.NET的开发了,通过本例实现一个AJAX vs VB.NET的简单取数据,以及数据的增,删,改操作,利用简单的数据库连接设置就实现基本的数据常用操作。

.创建数据表

首先创建一个数据表,以access数据表为例,设置数据表名称为:demo.mdb,创建字段分别是PRODUCT_ID, PRODUCT_NAME, PRODUCT_PRICE, PRODUCT_AREA。设置数据表存放路径,本例中demo.mdb的路径为:d:\\db\\demo.mdb"

 二:实现数据查询:

首先打开webshop3.0,新建工程,在工程对话框中键入工程名称和路径;

建好工程后在New .NET Service中设置工程所用的Language Service Type Class Name以及Directory。如本例中Directory设置为: …WebShop3e_beta /projects /vb_example/src/demo

Image

设置好.NET Service ,新建页面(File à New Page),在页面中的 Data Access ,中选择“Data Set”组件,在页面上设置两个DBPageNavigator ;三个DBEdit 和四个Span

具体每个组件设置如图:

 

如果对以上操作有不懂或者不明白的地方请参考笔者的上一篇文章,里面有详细的介绍,地址是:。。。。。。这里就不在重复了!如果在使用webshop过程中有什么不明白的也可以参考webshop的帮助文件或者在线faq(常见问题),这个很有帮助的,笔者一般有问题都是参考这两个东东。

今天我们将详细介绍下数据的增删改,要实现数据的增删改操作,也很简单,新建.NET Service ServiceType中选择”Updata Data”设置“class name”,此例中为:Simple_Update,在Simple.html页面中选择DataSet组件,在DataSet的“PostURL”属性中设置为:demo/Simple_Update.aspx (如图)。

        

打开Simple_Update.aspx,(如下图)你会看到基本代码都是已经写好了的,只需要自己根据需要修改或添加一部分简单的sql语句就可是了。怎么样想的很周到吧?

 

在代码中添加要操作的代码,(如图)。

 

下面就主要代码功能做个简单介绍:

                    action = xmlPost.GetAction(i)   //获取操作

                    acttype = action.ActionType   //获取操作类型

 1.////数据的update操作;

    

2.///////数据的delete操作;

   If (acttype.Equals("delete")) Then

 

                    where = " where "

                    where = where + action.getField("PRODUCT_ID").Name + "='" + action.getField("PRODUCT_ID").Value + "'"

                    sql = "delete from product" + where

                    OleDbCommand.CommandText = sql

                    OleDbCommand.ExecuteNonQuery()

                End If

 3.//////数据的insert操作;

If (acttype.Equals("insert")) Then

                    Dim field As String = ""

                    Dim value As String = ""

                    For j As Integer = 0 To action.FieldCount - 1

                        field = field + action.getField(j).Name

                        If (action.getField(j).Name.Equals("PRODUCT_PRICE")) Then

                            value = value + action.getField(j).Value

                        Else

                            value = value + "'" + action.getField(j).Value + "'"

                        End If

                        If (j < action.FieldCount - 1) Then

                            field = field + ","

                            value = value + ","

                        End If

                    Next

 

完成后保存,运行,你就会发现,可以对数据库中的数据进行操作了,增删改都没有问题。

 

下面附上程序中的Query _Data Updata_Data 代码清单,供读者参考:

 

///////////////////////////////////// Simple_Query.aspx.vb代码清单 ////////////////////////////////////////

 

Imports System

Imports System.Data

Imports System.Data.OleDb

Imports System.Configuration

Imports System.Collections

Imports System.Web

Imports System.Web.Security

Imports System.Web.UI

Imports System.Web.UI.WebControls

Imports System.Web.UI.WebControls.WebParts

Imports System.Web.UI.HtmlControls

Imports joyistar.eip.util

Imports joyistar.eip.vo

 

Partial Class Simple_Query

Inherits System.Web.UI.Page

    Private connString As String = "provider=Microsoft.Jet.OLEDB.4.0;Data Source= d:\\db\\demo.mdb"

    Private sql As String          = "select * from product"

       Dim sqlCount As String       = "select count(*) from   product"

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Response.ContentType          = "text/xml"

        Dim xml As String             = HttpParser.getXML(Request.InputStream)

        Dim xmlrequest As XmlRequest  = New XmlRequest()

        Dim conn As OleDbConnection = New OleDbConnection(connString)

        Try

            xmlrequest.Open(xml)

            conn.Open()

            Dim com As OleDbCommand     = New OleDbCommand(sql, conn)

            Dim objDA As OleDbDataAdapter = New OleDbDataAdapter(com)

            Dim objDS As Data.DataSet      = New Data.DataSet

            Dim maxRow As Integer         = xmlrequest.MaxRows

            Dim recNo As Integer           = xmlrequest.RecNo    

           

           'get rowCount

                     Dim rowCount As Integer           

            Dim MyConn As OleDbConnection = New OleDbConnection(connString)

            MyConn.Open()

            Dim MyComm As OleDbCommand = New OleDbCommand(sqlCount, MyConn)

            rowCount = Cint(MyComm.ExecuteScalar())

            xmlrequest.SetRecordCount(rowCount)

 

                     If maxRow = -1 Then

                            maxRow = rowCount

                     End If      

            objDA.Fill(objDS, recNo, maxRow, "product")

 

            Dim i As Int32

            Dim j As Int32

 

            With objDS.Tables(0)    

                            'fill fields

                For j = 0 To .Columns.Count - 1

                    If .Columns.Item(j).DataType.Equals("STRING") Then

                        xmlrequest.AddField(.Columns.Item(j).ColumnName, System.Convert.ToString(.Columns.Item(j).DataType), .Columns.Item(j).MaxLength)

                    Else

 

xmlrequest.AddField(.Columns.Item(j).ColumnName, System.Convert.ToString(.Columns.Item(j).DataType))

                    End If

                Next

                           

                            'fill data

                For i = 0 To .Rows.Count - 1

                    xmlrequest.Append()

                    For j = 0 To .Columns.Count - 1

                        xmlrequest.SetValue(.Columns.Item(j).ColumnName, .Rows(i).Item(j).ToString)

                    Next

                Next

            End With

            Response.Write(xmlrequest.GetXml())

            Response.Flush()

                     MyConn.Close()

        Catch ex As Exception

            xmlrequest.SetError(ex.Message)

            Response.Write(xmlrequest.GetXml())

            Response.Flush()

            conn.Close()

        End Try

 

    End Sub

End Class

 

xmlrequest.AddField(.Columns.Item(j).ColumnName, System.Convert.ToString(.Columns.Item(j).DataType))

                    End If

                Next

                           

                            'fill data

                For i = 0 To .Rows.Count - 1

                    xmlrequest.Append()

                    For j = 0 To .Columns.Count - 1

                        xmlrequest.SetValue(.Columns.Item(j).ColumnName, .Rows(i).Item(j).ToString)

                    Next

                Next

            End With

            Response.Write(xmlrequest.GetXml())

            Response.Flush()

                     MyConn.Close()

        Catch ex As Exception

            xmlrequest.SetError(ex.Message)

            Response.Write(xmlrequest.GetXml())

            Response.Flush()

            conn.Close()

        End Try

 

    End Sub

End Class

posted on 2007-05-23 10:12  新传  阅读(440)  评论(0编辑  收藏  举报

收藏到QQ书签