PDA

View Full Version : [VB.NET] Database - Computer Scemo


dxcoco2
03-12-2008, 17:07
Ciao ragazzi....sono 2 giorni che mi SCERVELLO su una funzione.
Un mio amico mi ha dato un database contenente tutte le località italiane (comuni, frazioni e città) e volevo usarlo per inserire i dati nel mio database!

questo db però è diviso in 2 tabelle:

TABELLA COMUNI
-Comune (LUCCA)
-CAP (55100)
-provik (10)

TABELLA ELENCOPROVINCE
-IDprovincia (10)
-siglaprovincia(LU)

Praticamente mi sono creato una tabella chiamata "CAPPA" che contiene cap, prov e comune, nella quale vorrei inserire comune, cap e la provincia.
la provincia praticamente viene ripescata dalla tabella elencoprovince .

ora posto il codice del programma:

'form temporaneo assegnazione province...
Dim objconn As OleDbConnection
Dim stringaconn As String
Dim stringasql As String
Dim objcomm As OleDbCommand

Dim objconnx As OleDbConnection
Dim stringaconnx As String
Dim stringasqlx As String
Dim objcommx As OleDbCommand

Dim objconnx2 As OleDbConnection
Dim stringaconnx2 As String
Dim stringasqlx2 As String
Dim objcommx2 As OleDbCommand



'connessione
stringaconn = "Provider=Microsoft.JET.OLEDB.4.0;Data Source="
stringaconn = stringaconn & Application.StartupPath + "\db.mdb"
objconn = New OleDbConnection(stringaconn)
objconn.Open()
stringasql = "Select * from comuni"
objcomm = New OleDbCommand(stringasql, objconn)
objcomm.ExecuteNonQuery()

Dim read As OleDbDataReader = objcomm.ExecuteReader
While read.Read()
Dim provn As String

provn = read("provik")
stringaconnx = "Provider=Microsoft.JET.OLEDB.4.0;Data Source="
stringaconnx = stringaconnx & Application.StartupPath + "\db.mdb"
objconnx = New OleDbConnection(stringaconnx)
objconnx.Open()
stringasqlx = "Select * from elencoprovince where idprovincia=" + provn
objcommx = New OleDbCommand(stringasqlx, objconnx)
objcommx.ExecuteNonQuery()

Dim readx As OleDbDataReader = objcommx.ExecuteReader
readx.Read()
Dim nomeprov As String
nomeprov = readx("siglaprovincia")



stringaconnx2 = "Provider=Microsoft.JET.OLEDB.4.0;Data Source="
stringaconnx2 = stringaconnx2 & Application.StartupPath + "\db.mdb"
objconnx2 = New OleDbConnection(stringaconnx2)

objconnx2.Open()
stringasqlx2 = "INSERT INTO CAPPE (comune, cap, prov) values('" + Apici(read("comune")) + "','" + read("cap") + "','" + nomeprov + "')"
objcommx2 = New OleDbCommand(stringasqlx2, objconnx2)
objcommx2.ExecuteNonQuery()
objconnx2.Close()

End While

'objconnx2.Close()
objconnx.Close()
objconn.Close()

MsgBox("conversione ultimata")


Bene...il problema è strano....

praticamente mi inserisce solo 62 Record (in realtà sono più di 10000) equando arriva a objconnx2.Open() mi dà: ERRORE NON SPECIFICATO

allora mi sono detto "forse è un determinato record che da problemi" e quindi avevo provato a ordinare i record secondo il CAP, niente....ancora 62 record!

Come mai? è il mio computer ad essere scemo, o sbaglio qualcosa?

grazie per il vostro prezioso aiuto.

dxcoco2
03-12-2008, 17:16
Mamma mia non ci credo!
Dopo 2 giorni scrivo sul forum e.....trovo la soluzione.

Praticamente non chiudevo la connessione objcommx

anzi....non l'avevo messa nel ciclo...


ora funza tutto...
ragazzi grazie uguale!

ciao a presto:D