Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    MSSQL "INSERT INTO" non funziona con browser Firefox, Mozilla e Opera.

    Salve a tutti e subito ringrazio per la pazienza nell'offrirmi aiuto.

    Ho problemi con il mio sito realizzato in ASP.NET VB e che lavora su un dbase MSSql: la riga "INSERT INTO" non funziona con browser Chrome, Mozilla e Opera andando in errore, mentre funziona benissimo con Explorer e Safari.

    'qui faccio la insert
    comandoSqlClient = New SqlCommand("INSERT INTO table ([nome], [cognome], [dataClick], [email]) VALUES ('" & nomeStr & "','" & cognomeStr & "','" & dataStr & "','" & emailStr & "')", connessioneSqlClient)
    comandoSqlClient.ExecuteNonQuery()

    Ho scansionato riga per riga il codice e l'errore avviene sulla riga INSERT, che succede?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di alpynet
    Registrato dal
    Mar 2010
    Messaggi
    123
    Ciao, prima di tutto, che errore ti da? poi ti consiglio di non usare quel metodo per impostare le query... usa query parametrizzate, eviti tanti ma tanti problemi, compreso SQL Injection se non fai un controllo sui valori che gli passi.

  3. #3
    Ciao alpynet, grazie per l'interessamento.

    Per quey parametrizzate intendi dire di passare il valore dentro una variabile? tipo qualcosa del genere:

    'qui faccio la insert
    parametro = "INSERT INTO table ([nome], [cognome], [dataClick], [email]) VALUES ('" & nomeStr & "','" & cognomeStr & "','" & dataStr & "','" & emailStr

    comandoSqlClient = New SqlCommand((parametro), connessioneSqlClient)
    comandoSqlClient.ExecuteNonQuery()

    Ho fatto anche questo ma non va.
    In allegato ti ho messo l'errore che ottengo.

    Grazie.
    Immagini allegate Immagini allegate

  4. #4
    Utente di HTML.it L'avatar di alpynet
    Registrato dal
    Mar 2010
    Messaggi
    123
    Ciao, l'errore si presenta quando viene eseguita la query o dopo?
    Le query parametrizzate sono query che usano parametri, vedi qui: http://msdn.microsoft.com/it-it/libr...=VS.80%29.aspx
    nel tuo caso, dovrebbe essere qualcosa del genere:
    codice:
    comandoSqlClient = New SqlCommand()
    
    strSql = "INSERT INTO table ([nome], [cognome], [dataClick], [email]) VALUES (@nomeStr,@cognomeStr,@dataStr,@emailStr)"
    
    comandoSqlClient.Parameters.Add("nomeStr", SqlDbType.VarChar).Value = nomeStr
    comandoSqlClient.Parameters.Add("cognomeStr", SqlDbType.VarChar).Value = cognomeStr
    comandoSqlClient.Parameters.Add("dataStr", SqlDbType.VarChar).Value = dataStr
    comandoSqlClient.Parameters.Add("emailStr", SqlDbType.VarChar).Value = emailStr
    
    comandoSqlClient.CommandText = strSql
    comandoSqlClient.Connection = connessioneSqlClient
    comandoSqlClient.ExecuteNonQuery()

  5. #5
    Ciao Alpynet, l'errore avviene eseguendo la query, alla riga:
    comandoSqlClient.ExecuteNonQuery()


    (PS grazie per le query parametrizzate, le userò subito)

  6. #6
    Utente di HTML.it L'avatar di alpynet
    Registrato dal
    Mar 2010
    Messaggi
    123
    Forse è un problema relativo ai dati che gli passi e la formattazione della query risultava sballata.. vedi se risolvi con i parametri..

  7. #7
    Ciao Alpynet, l'errore continua a verificarsi nella query alla riga:

    comandoSqlClient.ExecuteNonQuery()

    Ho usato la query parametrizzata come tu hai detto. funziona bene ma non è cambiato nulla:

    Explorer: ok
    Safari: ok

    Chrome: errore
    Mozilla: errore
    Opera: errore

    Non ne cavo piede.

    Hai qualche idea?
    Grazie.
    Ciao.

  8. #8
    Ciao Alpynet,

    volevo solo dirti che ho trovato la soluzione e la posto perchè magari è utile a qualcuno: dopo un meglio accurato debug ho trovato che il vero error msg era questo: "I dati di tipo string o binary verrebbero troncati. L'istruzione è stata interrotta.", questo errore non veniva rilevato da IE e Safari ma solo dagli altri tre browsers.

    La soluzione l'ho trovata ed è questa: http://www.dotnethell.it/forum/messa...ThreadID=25964

    Saluto cordialmente.

  9. #9
    Utente di HTML.it L'avatar di alpynet
    Registrato dal
    Mar 2010
    Messaggi
    123
    Bene, mi fa piacere che hai risolto.
    Infatti ti stavo per consigliare di controllare i valori che passavi alla query, in quanto l'errore sicuramente dipendeva da essi.
    Però da quanto mi dici, deduco che nella tua applicazione non hai previsto la cattura di eventuali errori per vedere se la query va a buon fine. Eventualmente ti conviene implementare una procedura di risposta, con eventuali messaggi di errore, nei casi in cui la query fallisse..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.