您的位置:首页 > 运维架构

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

2007-05-23 10:12 525 查看
AJAX有机地包含了以下几种技术: 基于web标准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)进行动态显示及交互; 使用 XML 和 XSLT 进行数据交换及相关操作; 使用 XMLHttpRequest 进行异步数据查询、检索;使用 JavaScript 将所有的东西绑定在一起。最大的特点就是能够实现页面或数据的无刷新操作。类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。
AJAX作为做一种新兴而实用的web技术,已经越来越受到人们的广泛关注,AJAX开发有没有什么工具呢?如果不是十分了解dhtml,javascript等技术是不是就不能做AJAX开发呢?说到AJAX开发工具,就不能不提到joyistar WebShop了,它是一个完全可视化的AJAX技术开发环境。并且即使你暂时不是很清楚AJAX相关技术也可以进行基本的 web开发,下面就是笔者用webshop3.0做的一个简单的数据查询和对数据的增,删,改以及检索的实例。

功能介绍: WebShop从3.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



设置好.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: