台灣最大程式設計社群網站
線上人數
727
 
會員總數:246038
討論主題:189624
歡迎您免費加入會員
討論區列表 >> ASP.NET >> [NET]webservice聯結資料庫實作???????
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[NET]webservice聯結資料庫實作???????
價值 : 0 QP  點閱數:3008 回應數:0
樓主

sonic
初學者
45 12
34 17
發送站內信

請問我在sql語言裡update的部分是不是有錯啊
為什麼網頁可以跑,資料庫裡的Taken會更新
就只差Meal沒有更新呢
#############webservice############
Reservation.asmx.vb
' Airline reservation Web Service.

Imports System
Imports System.Data
Imports System.Diagnostics
Imports System.Web
Imports System.Web.Services
Imports System.Data.OleDb

' performs reservation of a seat
<WebService(Namespace:="http://www.deitel.com/", Description:= _
   "Service that enables a user to reserve a seat on a plane.")> _
Public Class Reservation
   Inherits System.Web.Services.WebService

   Friend WithEvents oleDbDataAdapter1 As _
      System.Data.OleDb.OleDbDataAdapter

   Friend WithEvents oleDbDeleteCommand1 As _
      System.Data.OleDb.OleDbCommand

   Friend WithEvents oleDbConnection1 As _
      System.Data.OleDb.OleDbConnection

   Friend WithEvents oleDbInsertCommand1 As _
      System.Data.OleDb.OleDbCommand

   Friend WithEvents oleDbSelectCommand1 As _
      System.Data.OleDb.OleDbCommand

   Friend WithEvents oleDbUpdateCommand1 As _
      System.Data.OleDb.OleDbCommand

#Region " Web Services Designer Generated Code "

   Public Sub New()
      MyBase.New()

      'This call is required by the Web Services Designer.
      InitializeComponent()

      'Add your own initialization code after the InitializeComponent() call

   End Sub

   'Required by the Web Services Designer
   Private components As System.ComponentModel.IContainer

   'NOTE: The following procedure is required by the Web Services Designer
   'It can be modified using the Web Services Designer.  
   'Do not modify it using the code editor.
   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
      Me.oleDbDataAdapter1 = New System.Data.OleDb.OleDbDataAdapter()
      Me.oleDbDeleteCommand1 = New System.Data.OleDb.OleDbCommand()
      Me.oleDbConnection1 = New System.Data.OleDb.OleDbConnection()
      Me.oleDbInsertCommand1 = New System.Data.OleDb.OleDbCommand()
      Me.oleDbSelectCommand1 = New System.Data.OleDb.OleDbCommand()
      Me.oleDbUpdateCommand1 = New System.Data.OleDb.OleDbCommand()
      '
      'oleDbDataAdapter1
      '
      Me.oleDbDataAdapter1.DeleteCommand = Me.oleDbDeleteCommand1
      Me.oleDbDataAdapter1.InsertCommand = Me.oleDbInsertCommand1
      Me.oleDbDataAdapter1.SelectCommand = Me.oleDbSelectCommand1
      Me.oleDbDataAdapter1.TableMappings.AddRange(New System.Data.Common.DataTableMapping() {New System.Data.Common.DataTableMapping("Table", "Seats", New System.Data.Common.DataColumnMapping() {New System.Data.Common.DataColumnMapping("Number", "Number")})})
      Me.oleDbDataAdapter1.UpdateCommand = Me.oleDbUpdateCommand1
      '
      'oleDbDeleteCommand1
      '
      Me.oleDbDeleteCommand1.CommandText = "DELETE FROM Seats WHERE ([Number] = ?)"
      Me.oleDbDeleteCommand1.Connection = Me.oleDbConnection1
      Me.oleDbDeleteCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_Number", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Number", System.Data.DataRowVersion.Original, Nothing))
      '
      'oleDbConnection1
      '
      Me.oleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Inetpub" & _
      "\wwwroot\AirlineReservation\Tickets.mdb;Mode=Share Deny None;Extended Properties" & _
      "="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database P" & _
      "assword="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:G" & _
      "lobal Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Data" & _
      "base Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Databa" & _
      "se=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without " & _
      "Replica Repair=False;Jet OLEDB:SFP=False"
      '
      'oleDbInsertCommand1
      '
      Me.oleDbInsertCommand1.CommandText = "INSERT INTO Seats([Number]) VALUES (?)"
      Me.oleDbInsertCommand1.Connection = Me.oleDbConnection1
      Me.oleDbInsertCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Number", System.Data.OleDb.OleDbType.VarWChar, 50, "Number"))
      '
      'oleDbSelectCommand1
      '
      Me.oleDbSelectCommand1.CommandText = "SELECT [Number] FROM Seats"
      Me.oleDbSelectCommand1.Connection = Me.oleDbConnection1
      '
      'oleDbUpdateCommand1
      '
      Me.oleDbUpdateCommand1.CommandText = "UPDATE Seats SET [Number] = ? WHERE ([Number] = ?)"
      Me.oleDbUpdateCommand1.Connection = Me.oleDbConnection1
      Me.oleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Number", System.Data.OleDb.OleDbType.VarWChar, 50, "Number"))
      Me.oleDbUpdateCommand1.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_Number", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "Number", System.Data.DataRowVersion.Original, Nothing))

   End Sub

   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
      'CODEGEN: This procedure is required by the Web Services Designer
      'Do not modify it using the code editor.
      If disposing Then
         If Not (components Is Nothing) Then
            components.Dispose()
         End If
      End If
      MyBase.Dispose(disposing)
   End Sub

#End Region

   ' checks database to determine if matching seat is available
    <WebMethod(Description:="Method to reserve a seat.")> _
    Public Function Reserve(ByVal seatType As String, _
       ByVal classType As String, ByVal mealType As String) As Boolean

        ' try database connection
        Try
            Dim dataReader As OleDbDataReader

            ' open database connection
            oleDbConnection1.Open()

            ' set and execute SQL query
            oleDbDataAdapter1.SelectCommand.CommandText = _
               "SELECT Number FROM Seats WHERE Type = '" & _
               seatType & "' AND Class = '" & classType & _
               "' AND Taken = '0'"
            dataReader = _
               oleDbDataAdapter1.SelectCommand.ExecuteReader()

            ' if there were results, seat is available
            If dataReader.Read() Then

                Dim seatNumber As String = dataReader.GetString(0)
                dataReader.Close()

                ' update the first available seat to be taken
                oleDbDataAdapter1.UpdateCommand.CommandText = _
                   "Update Seats Set Taken = '1', Meal='" & mealType & "' WHERE Number = '" _
                   & seatNumber & "'"

                oleDbDataAdapter1.UpdateCommand.ExecuteNonQuery()

                Return True
            End If

            dataReader.Close()

        Catch exception As OleDbException ' if connection problem
            Return False

        Finally
            oleDbConnection1.Close()
        End Try

        ' no seat was reserved
        Return False

    End Function ' Reserve

End Class ' Reservation
############web service end #################

#############web page######################
TicketReservation.aspx.vb
' Making a reservation using a Web Service.

Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Web
Imports System.Web.SessionState
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

' allows visitors to select seat type to reserve, and
' then make the reservation
Public Class TicketReservation
   Inherits System.Web.UI.Page

   Protected WithEvents Label1 As Label
   Protected WithEvents reserveButton As Button
   Protected WithEvents classList As DropDownList
   Protected WithEvents seatList As DropDownList
    Protected WithEvents mealList As DropDownList
    Private Agent As New localhost.Reservation()

#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

   Private Sub Page_Load(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles MyBase.Load

      If IsPostBack Then
         classList.Visible = False
            seatList.Visible = False
            mealList.Visible = False
            reserveButton.Visible = False
            Label1.Visible = False
      End If
   End Sub

   ' calls Web Service to try to reserve the specified seat
   Private Sub reserveButton_Click(ByVal sender As _
      System.Object, ByVal e As System.EventArgs) _
      Handles reserveButton.Click

      ' if WebMethod returned true, signal success
        If Agent.Reserve(seatList.SelectedItem.Text, _
           classList.SelectedItem.Text.ToString, mealList.SelectedItem.Text) Then

            Response.Write("Your reservation has been made." _
               & "  Thank you.")

            ' WebMethod returned False, so signal failure
        Else
            Response.Write("This seat is not available, " & _
               "please hit the back button on your browser " & _
               "and try again.")
        End If

   End Sub ' reserveButton_Click

End Class ' TicketReservation

本篇文章發表於2002-05-15 21:10
目前尚無任何回覆
   

回覆
如要回應,請先登入.