Newsgroup: it.comp.software.database
Titolo: un semplice Insert Into ...

Per quale motivo quando eseguo la mia applicazione mi ritorna l'errore qui
riportato ?
Si tratta di una banalissima istruzione SQL e qui mi dice che è sbagliato il
formato , bahh
Input string was not in a correct format.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.
Exception Details: System.FormatException: Input string was not in a correct
format.
Source Error:
Line 260:                dstCmd.Parameters.Add("ID_Classifica",
dstDr.Item("ID_Classifica"))
Line 261:            Else ' Inserisci nuovo
Line 262:                strSQL = "INSERT INTO Classifica (ID_Catalogo,
Accessi) VALUES (" & Codice & ", 1)"
Line 263:                'dstCmd.Parameters.Add("@Codice", Codice)
Line 264:            End If
-- 
Ciao
Flex
[ MAIL ATTACH, SPAM, and msgs larger than 95K > /dev/null ]

Ecco il codice , per chi fosse curioso ...
Se non è complesso questo .............
In pratica si deve abilitare il campo di una tabella Ordini , poi prendere
dei codici prodotto da un'altra (Dettaglio_Ordini) e , se sono presenti
nella terza tabella (classifica) incrementare il valore del campo accessi ,
altrimenti creare una entry con il campo accessi = 1
Che casino
Shared Function Storage(ByVal ID As Long) As Boolean
Dim Conn As New
OleDbConnection(ConfigurationSettings.AppSettings.Get("CONNSTRING"))
Dim dstConn As New
OleDbConnection(ConfigurationSettings.AppSettings.Get("CONNSTRING"))
Dim srcCmd As New OleDbCommand() ' Riferito alla Tab Dettaglio_Ordini
Dim dstCmd As New OleDbCommand() ' Riferito alla Tab Classifica
Dim strSQL As Integer
' Apro la connessione
Conn.Open()
' Setto l'ordine come Evaso
srcCmd.Connection = Conn
srcCmd.CommandText = "UPDATE Ordini SET Evaso=true WHERE ID_Ordini=?"
srcCmd.Parameters.Add("ID_Ordini", ID)
srcCmd.ExecuteNonQuery()
srcCmd.Dispose()
' Cerca in Dettaglio_Ordini i Codici degli articoli
srcCmd.Connection = Conn
srcCmd.CommandText = "SELECT Codice FROM Dettaglio_Ordini WHERE Ordine=?"
srcCmd.Parameters.Add("Ordine", ID)
Dim dr As OleDbDataReader = srcCmd.ExecuteReader()
dstconn.open()
' Aggiorna la classifica
Do While dr.Read()
Dim Codice As Long = dr.Item("Codice") ' Codice da aggiungere alla
classifica
' Controllo se il file è già in classifica
dstCmd.Connection = dstConn
dstCmd.CommandText = "SELECT ID_Classifica, Accessi FROM Classifica WHERE
ID_Catalogo=?"
dstCmd.Parameters.Add("ID_Catalogo", Codice)
Dim dstDr As OleDbDataReader =
dstCmd.ExecuteReader(CommandBehavior.SingleRow)
If dstDr.Read() Then ' Incrementa
strSQL = "UPDATE Classifica SET Accessi=? WHERE ID_Classifica=?"
dstCmd.Parameters.Add("Accessi", CLng(dstDr.Item("Accessi")) + 1)
dstCmd.Parameters.Add("ID_Classifica", dstDr.Item("ID_Classifica"))
Else ' Inserisci nuovo
strSQL = "INSERT INTO Classifica (ID_Catalogo, Accessi) VALUES (" & Codice &
", 1)"
End If
dstDr.Close()
dstCmd.Connection = dstConn
dstCmd.CommandText = strSQL
dstCmd.ExecuteNonQuery()
Loop
dr.Close()
Conn.Close()
End Function

SCUSATE FALSO ALLARME
dichiarando la stringa SQL come integer difficilmente poteva funzionare :-)
