Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Funzione splitta e inserisci, ma.....
giovedì 22 giugno 2006 - 11.58
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
kiwi
Profilo
| Newbie
45
messaggi | Data Invio:
gio 22 giu 2006 - 11:58
4 occhi sono meglio di 2 mi domandavo se voi riuscite a vedere l'errore?
Questa funzione dovrebbe ricevere tre stringhe di testo così formattate:
Mario-Rossi-CodiceFiscale
Lo split mi divide il nome, cognome e il codice fiscale per poter inserire le voci nei campi
e il primo lo fa SinArray va tutto ok
però denArray e AzArray mi dicono "Indice oltre i limiti della matrice" penso che sia una questione di array, ma è uguale a SinArray che riesce a svolgere....?!?!
Comunque escludendo denArray e Azarray per far proseguire almeno Sinarray la funzione.....perdonate il giro di parole FUNZIONA! ma se poi vado a vedere nel DB non c'è traccia dei campi inseriti, why? perchè?
Riuscite a vedere qualcosa che io non vedo?
grazie
Public Function SplittaStringhe(ByVal codeI As String, ByVal Sin As String, ByVal Den As String, ByVal Az As String, ByVal SegnoSplit As String)
Dim SinArray(5) As Object
Dim DenArray(3) As Object
Dim AzArray(7) As Object
Dim MyconnX As OleDbConnection
Dim strInsertSin As String
Dim strInsertDen As String
Dim strInsertAz As String
Dim cmdInsertSin As OleDbCommand
Dim cmdInsertDen As OleDbCommand
Dim cmdInsertAz As OleDbCommand
'---------------------------------------------------------------------
SinArray = Split(Sin, SegnoSplit)
DenArray = Split(Den, SegnoSplit)
AzArray = Split(Az, SegnoSplit)
'---------------------------------------------------------------------
MyconnX = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Port.mdb")
strInsertSin = "insert T_Sin (S_Indirizzo, S_Cap, S_Comune, S_SiglaProvincia, S_CodComune) values ('" & SinArray(1) & "','" & SinArray(2) & "','" & SinArray(3) & "','" & SinArray(4) & "','" & SinArray(4) & "')"
strInsertDen = "insert into T_Den (D_Nome, D_Cognome, D_CodiceFiscale) values ('" & DenArray(1) & "','" & DenArray(2) & "','" & DenArray(3) & "')"
strInsertAz = "insert into T_Az (A_RS, A_CoFiscale, A_ParIva, A_Indirizzo, A_Cap, A_Comune, A_SiglaProvincia) values ('" & AzArray(1) & "','" & AzdaArray(2) & "','" & AzArray(3) & "','" & AzArray(4) & "','" & AzArray(5) & "','" & AzArray(6) & "','" & AzArray(7) & "')"
cmdInsertSin = New OleDbCommand(strInsertSin, MyconnX)
cmdInsertDen = New OleDbCommand(strInsertDen, MyconnX)
cmdInsertAz = New OleDbCommand(strInsertAz, MyconnX)
MyconnX.Open()
MyconnX.Close()
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 22 giu 2006 - 13:24
Ciao,
scusami, ma devo ammettere che non ho capito molto nel tuo post..
dunque.. una stringa formattata come
NOME-COGNOME-CODICEFISCALE..
Tu vuoi fare una funzione che splitta la stringa, crea dei command e inserisce in un db sql server.. giusto?
ora, non capisco perchè 3 matrici...
spiegami meglio per favore..
Alx81 =)
http://blogs.dotnethell.it/suxstellino
kiwi
Profilo
| Newbie
45
messaggi | Data Invio:
gio 22 giu 2006 - 13:52
Ciao, grazie per aver risposto
devono arrivare 3 stringhe alla mia funzione più un codice e il segno di split volendo....
comunque le stringhe coinvolte sono queste
'SegnoSplit = "-"
Sin = "Indirizzo-CAP-Comune-Provincia-CodComune"
Den = "Nome-Cognome-CodiceFiscale"
Az = "RagioneSociale-CodiceFiscale-PartitaIva-Indirizzo-Cap-Comune-Provincia"
i valori messi qui ovviamente sono di esempio poi nella realtà mi arrivano i valori da inserire nei campi
da questi nascono o meglio si valorizzano gli array:
SinArray
DenArray
AzArray
con compongono le insert into, che sembrano non funzionare!
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 22 giu 2006 - 14:11
dunque.. il carattere "-" è pericoloso.. metti che esista già in un valore che ti passano.. sei fregato..
se riesci usa qualcosa di più raro, tipo la tilde ~ oppure il pipe | .. vedi te se riesci..
inoltre, se non setti una particolare opzione, le matrici create sono 0-based, e quindi partono da 0, non da 1..
detto questo, ti conviene fare così:
Private Function SplitAndInsert(ByVal SinString as String, ByVal DenString as String, ByVal AzString as String, ByVal SplitterString As String)
' matrici dinamiche, senza lunghezze prestabilite
Dim SinArray As String()
Dim DenArray As String()
Dim AzArray As String()
' connessione
Dim objConn as New OledbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Port.mdb")
' stringhe SQL
Dim strInsertSin As String
Dim strInsertDen As String
Dim strInsertAz As String
' command da eseguire
Dim cmdInsertSin As New OleDbCommand()
Dim cmdInsertDen As New OleDbCommand()
Dim cmdInsertAz As New OleDbCommand()
' split dei dati
SinArray = Split(SinString, Splitter)
DenArray = Split(DenString, Splitter)
AzArray = Split(AzString, Splitter)
' creazione commandtext (la split torna array 0-based.. quindi parti da 0 non da 1, come indice
strInsertSin = "INSERT INTO T_Sin (S_Indirizzo, S_Cap, S_Comune, S_SiglaProvincia, S_CodComune) VALUES ('" & SinArray(0) & "','" & SinArray(1) & "','" & SinArray(2) & "','" & SinArray(3) & "','" & SinArray(4) & "')"
strInsertDen = "INSERT INTO T_Den (D_Nome, D_Cognome, D_CodiceFiscale) VALUES ('" & DenArray(0) & "','" & DenArray(1) & "','" & DenArray(2) & "')"
strInsertAz = "INSERT INTO T_Az (A_RS, A_CoFiscale, A_ParIva, A_Indirizzo, A_Cap, A_Comune, A_SiglaProvincia) VALUES ('" & AzArray(0) & "','" & AzdaArray(1) & "','" & AzArray(2) & "','" & AzArray(3) & "','" & AzArray(4) & "','" & AzArray(5) & "','" & AzArray(6) & "')"
' completo i comandi
cmdInsertSin.CommandText = strInsertSin
cmdInsertSin.Connection = MyconnX
cmdInsertDen.CommandText = strInsertDen
cmdInsertDen.Connection = MyconnX
cmdInsertAz.CommandText = strInsertAz
cmdInsertAz.Connection = MyconnX
'MANCA L'EXECUTE DEI COMANDI!!!
cmdInsertSin.ExecuteNonQuery()
cmdInsertDen.ExecuteNonQuery()
cmdInsertAz.ExecuteNonQuery()
MyconnX.Close()
MyConnX.Dispose()
End Function
Alx81 =)
http://blogs.dotnethell.it/suxstellino
kiwi
Profilo
| Newbie
45
messaggi | Data Invio:
gio 22 giu 2006 - 14:53
Caspio dell'EXECUTE!
ok, ok mi continua a sfuggire il perchè un array si e due no comunque....
Per lo split ho lasciato per quel motivo la possibilità di inviarlo perchè non so come e dove verrà usata esattamente la funzione.
ti ringrazio ancora e.....complimenti per l'ordine io parto bene poi ........
kiwi
Profilo
| Newbie
45
messaggi | Data Invio:
gio 22 giu 2006 - 15:18
cmdInsertSin.CommandText = strInsertSin
cmdInsertSin.Connection = objConn
cmdInsertDen.CommandText = strInsertDen
cmdInsertDen.Connection = objConn
cmdInsertAz.CommandText = strInsertAz
cmdInsertAz.Connection = objConn
objConn.Open() '<----- ho aggiunto l'apertura della connessione per chi legge poi
'questo post e magari non lo sa...
'però mi sa che lo split s'incasina con il trattino - alto e quello _ basso perchè se lascio i campi tipo:
'A_indirizzo come provavo prima mi dice che gli risultano troppi valori.
'Ok cambio il simbolo di split!
cmdInsertSin.ExecuteNonQuery()
cmdInsertDen.ExecuteNonQuery()
cmdInsertAz.ExecuteNonQuery()
Grazie ancora ciao!!
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 22 giu 2006 - 16:33
se ritieni che la risposta ti sia servita, ti chiedo cortesemente di accettarla.. grazie cmq!
Alx81 =)
http://blogs.dotnethell.it/suxstellino
kiwi
Profilo
| Newbie
45
messaggi | Data Invio:
gio 22 giu 2006 - 18:08
>se ritieni che la risposta ti sia servita, ti chiedo cortesemente
>di accettarla.. grazie cmq!
>Alx81 =)
>
>
http://blogs.dotnethell.it/suxstellino
Scusa non ho capito se ti sei offeso e per cosa..... non mi sembra di aver scritto qualcosa che potesse risultare scortese, sei stato molto gentile e ho scritto dell'apertura della connessione non per correggere te, ma pensando a chi avrebbe letto poi senza sapere che mancava quel pezzo................tutto qui!
ti ringrazio ancora per l'aiuto
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 22 giu 2006 - 19:53
no no.. ci mancherebbe..
solo che mi faceva piacere, se lo ritieni opportuno, che tu cliccassi la voce "accetta la risposta".. =)
Alx81 =)
http://blogs.dotnethell.it/suxstellino
kiwi
Profilo
| Newbie
45
messaggi | Data Invio:
gio 22 giu 2006 - 20:54
ooopsss non sapevo scusa
Torna su
Stanze Forum
Elenco Threads
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 !