Udata database access

martedì 31 agosto 2010 - 16.27

fanigliuloa Profilo | Newbie

salve vi scrivo per sottoporvi un quesito.
vorrei creare una funzione in vb net per l'update di una tabella in un database acess, io dovrei passare a tale funzione il numero del record da aggiornare il nome delle colonna e il valore dell'elemento.

es. UpdateRecord(num record, nomecolonna,valoreelemento)

potreste darmi una mano per favore?

alx_81 Profilo | Guru

>salve vi scrivo per sottoporvi un quesito.
Ciao

>vorrei creare una funzione in vb net per l'update di una tabella
>in un database acess, io dovrei passare a tale funzione il numero
>del record da aggiornare il nome delle colonna e il valore dell'elemento.
>es. UpdateRecord(num record, nomecolonna,valoreelemento)
>potreste darmi una mano per favore?
conosci ADO.Net? se sì si fa tutto in pochi minuti..


--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

TOPOAMORE Profilo | Expert

Ciao,

allora i record da aggiornare sono consecutivi?
vanno filtrati?

Un po piu di dettagli male non fa
__.__.__.__.__.__

ASP 2.0 - VB 2008

fanigliuloa Profilo | Newbie

mi spiego meglio. In pratica vorrei leggere un file xml e spostarlo in un database access. Ogni nodo del file xml dovrebbe corrispondere ad un record nel database access. Ho realizzato una funzione che legge il file xml e stampa a video i risultati, non riesco a realizzare la funziona che sposta tali risultati nel database. Vi posto la struttura del file xml e la funzione per leggere il file.

File xml:

<?xml version="1.0" encoding="utf-8"?>
<root>
<record>
<id>1</id>
<nome> nome1 </nome>
<cognome> cognome1</cognome>
<piva> piva1 </piva>
</record>
<record>
<id>2</id>
<nome>nome2 </nome>
<cognome>cognome2 </cognome>
</record>
<record>
<id>3</id>
<nome>nome3 </nome>
<piva>piva3 </piva>
</record>
</root>

File Caricaxml.aspx

<%@ Import Namespace="System.Data.OleDb" %>

<script runat="server">
Dim objConnection As OleDbConnection
Sub ButtonClick(sender As Object, e As EventArgs)
litXMLFile.Text = ReadXML("//root/record", "test.xml")
objConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("\mdb-database\prova.mdb") & ";")
AddNewRecord
End Sub

Public Function ReadXML(ByVal XPathQuery As String, ByVal FileName As String) As String
Dim retValue As String = ""
Dim path As String = HttpContext.Current.Server.MapPath(FileName)
Dim Doc As System.Xml.XmlDocument = New System.Xml.XmlDocument()
Doc.Load(path)
Dim node As System.Xml.XmlNodeList = Doc.SelectNodes(XPathQuery)
For numElemento As Integer = 1 To node.Count - 1

retValue &= "Nodo(" & numElemento & ") Nome = " & node(numElemento).Name & "<br/>" & vbCrLf
For j As Integer = 0 To node(numElemento).ChildNodes.Count - 1
Dim NomeElemento As String = node(numElemento).ChildNodes(j).Name
Dim ValoreElemento As String = node(numElemento).ChildNodes(j).InnerText
retValue &= "->" & NomeElemento & " = " & ValoreElemento & "<br/>" & vbCrLf
Next
Next
Return retValue
End Function
</script>

<html>
<head id="Head1" runat="server">
<title>Single-File Page Model</title>
</head>
<body>

<form id="form1" runat="server">
<div>
<asp:Literal ID="litXMLFile" runat="server" >
</asp:Literal>
<asp:Button id="Button1"
Text="Carica"
OnClick="ButtonClick"
runat="server"/>

</div>
</form>

</body>
</html>

TOPOAMORE Profilo | Expert

Ti rispondo in modo molto breve per darti la possibilita di studiare la cosa:

in un dataset puoi dare un pasto un file xml e trattare il dataset come tutti gli altri cioe tabelle, record ecc...

dim ds as new dataset
ds.readxml("tuonomefile.xml")

e dentro al dataset c'e' tutta la struttura del tuo file xml.

Da qui ti sara piu facile importare i dati nel db.

Ora prova a creare la funzione se hai problemi posta.

Ciaoo
__.__.__.__.__.__

ASP 2.0 - VB 2008

fanigliuloa Profilo | Newbie

ciao e grazie per i suggerimenti. ho provato ha creare la funzione che legge i nodi da un file xml e li carica su un database access:

Public Function ReadXML(ByVal XPathQuery As String, ByVal FileName As String) As String

Dim retValue As String = ""
Dim path As String = HttpContext.Current.Server.MapPath(FileName)
Dim Doc As System.Xml.XmlDocument = New System.Xml.XmlDocument()
Doc.Load(path)
Dim node As System.Xml.XmlNodeList = Doc.SelectNodes(XPathQuery)

For numElemento As Integer = 1 To node.Count - 1
retValue &= "Nodo(" & numElemento & ") Nome = " & node(numElemento).Name & "<br/>" & vbCrLf


For j As Integer = 0 To node(numElemento).ChildNodes.Count - 1
Dim NomeElemento As String = node(numElemento).ChildNodes(j).Name
Dim ValoreElemento As String = node(numElemento).ChildNodes(j).InnerText
retValue &= "->" & NomeElemento & " = " & ValoreElemento & "<br/>" & vbCrLf
Dim myDataRowsCommandBuilder as OleDbCommandBuilder = new OleDbCommandBuilder(myDataAdapter)
myDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
myDataAdapter.Fill(myDataSet, "Product")
myDataRow = myDataSet.Tables("Product").NewRow()
myDataRow(NomeElemento) = ValoreElemento
myDataSet.Tables("Product").Rows.Add(myDataRow)
myDataAdapter.Update(myDataSet, "Product")

Next
Next

Return retValue
End Function


tale funzione inserisce i dati nel database ma aggiunge una riga per ogni figlio del nodo xml.

io vorrei
record1: nome1 cognome1 piva1

invece la funziona fa:
record1: nome1
record2: cognome1
record3: piva1

Grazie

TOPOAMORE Profilo | Expert

Se leggi il mio suggerimento vedi che la procedure non è la stessa e non è macchinosa come leggere i nodi di un XML

Ti posto un paio di link dove puoi farti un idea:

http://vbnetsample.blogspot.com/2007/07/read-xml-content-to-dataset.html

http://www.a1vbcode.com/snippet-2391.asp

Ciaooo
__.__.__.__.__.__

ASP 2.0 - VB 2008
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5