21. maj 2004 - 18:19
Der er
3 kommentarer
Opdateringsside med læsning fra XML til Access-fil
Jeg har lavet en webside hvor man kan opdatere oplysninger (altså ændre, slette osv), der vises i en datagrid.
Den henviser til en xml-fil, hvor oplysningerne ligger i.
Hvordan får jeg den til at hente det fra en access-fil?
Koden ser sådan ud:
Dim ObjConn As oledbConnection
Dim ObjRs As oledbDataReader
Dim ObjCmd As oledbCommand
Dim DBPos, Antal, i, SideAntal, TotalPris As Integer
Dim CheckOutDate as Date
Dim NyAntalSolgt As Integer
Dim SQLStr As string
Dim strRes, strConn, strSQL, strSti as string
Dim objDR as OledbDataReader
Sub Page_Load(sender as object, e as eventargs)
If not Page.IsPostback Then
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End If
End Sub
Protected Function LoadMyCalendarData() As DataSet
Dim sourceXML as String = Server.MapPath("MyCalendar.xml")
If ( Not File.Exists(sourceXML) ) Then
Return Nothing
End if
Dim cachedDataSet as DataSet = Session("MyCalendarData")
if ( Not cachedDataSet Is Nothing ) Then
Return cachedDataSet
End if
Dim dataSet As DataSet = New DataSet()
Try
dataSet.ReadXml(sourceXML)
Session("MyCalendarData") = dataSet
Catch e As Exception
ErrorMessage.Text = e.Message
dataSet = Nothing
End Try
Return dataSet
End Function
Sub DEDR_Edit(sender as object, e as DataGridCommandEventArgs)
EventData.EditItemIndex = CInt(E.Item.ItemIndex)
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End Sub
Sub DEDR_Update(sender as object, e as DataGridCommandEventArgs)
Dim dataSet as DataSet = LoadMyCalendarData
Dim row as Integer = CInt(E.Item.ItemIndex)
Dim EditText as textbox
EditText = E.Item.FindControl("txtShortDesc")
dataSet.Tables(0).Rows(row).Item("ShortDesc") = EditText.Text
EditText = E.Item.FindControl("txtDetailDesc")
dataSet.Tables(0).Rows(row).Item("DetailDesc") = EditText.Text
EditText = E.Item.FindControl("txtEventDate")
dataSet.Tables(0).Rows(row).Item("EventDate") = EditText.Text
EditText = E.Item.FindControl("txtStartTime")
dataSet.Tables(0).Rows(row).Item("StartTime") = EditText.Text
EditText = E.Item.FindControl("txtEndTime")
dataSet.Tables(0).Rows(row).Item("EndTime") = EditText.Text
dataSet.WriteXML(Server.Mappath("MyCalendar.xml"))
Session("MyCalendarData") = Nothing
EventData.EditItemIndex = -1
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End Sub
Sub DEDR_Cancel(sender as object, e as DataGridCommandEventArgs)
EventData.EditItemIndex = -1
Session("MyCalendarData") = Nothing
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End Sub
Sub DEDR_Delete(sender as object, e as DataGridCommandEventArgs)
Dim dataSet as DataSet = LoadMyCalendarData
Dim row as Integer = CInt(E.Item.ItemIndex)
dataSet.Tables(0).Rows(row).Delete
dataSet.WriteXML(Server.Mappath("MyCalendar.xml"))
Session("MyCalendarData") = Nothing
EventData.EditItemIndex = -1
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End Sub
Sub DEDR_Add(sender as object, e as EventArgs)
Dim dataSet as DataSet = LoadMyCalendarData
Dim newRow as DataRow
newRow = dataSet.Tables(0).NewRow()
newRow.Item("EventDate") = ""
newRow.Item("ShortDesc") = ""
newRow.Item("DetailDesc") = ""
newRow.Item("StartTime") = ""
newRow.Item("EndTime") = ""
dataSet.Tables(0).Rows.Add(newRow)
dataSet.WriteXML(Server.Mappath("MyCalendar.xml"))
Session("MyCalendarData") = Nothing
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
EventData.EditItemIndex = EventData.Items.Count - 1
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End Sub
Hvordan får jeg den til at læse fra en Access-database, i stedet for en XML-fil, altså så den have opdateringsfunktionen med vist i en datagrid