Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Sql insert into : problema con gli apici

    Salve a tutti io ho un programma in c# in cui svolgo delle query di inserimento in un Db sql server 2005.
    Fin qui tutto nulla di strano, il problema è che le stringhe da inserire che passo alla query posso contenere degli apici singoli che vanno in conflitto con gli apici di inzio e fine stringa.
    Come posso ovviare a questo problema?
    Avevo anche pensato di raddopiare gli apici che sono all interno della stringa quando le inserisco e di dimezzarli quando recupero la stringa.
    Purtroppo sono dati molto importati e vanno inseriti nella loro completa integrità.


    Avete idee al riguardo?
    Vi sarei molto grato

    possibile esempio di query
    INSERT INTO tab1 (campo1, campo2) VALUES ('sdj'sijs'jdjdj' , '7hh78t'huh990')

  2. #2
    usa una funzione che ti converta gli apici in qualche sequeza di caratteri che altrimenti non si verificherebbero e i dati così trasofrmati li inserisci nella tabella.
    quando li richiami usi il procedimento inverso
    ad esempio:
    'sdj'sijs'jdjdj'
    potrebbe divetare
    codice:
    |?()sdj|?()sijs|?()jdjdj|?()
    dove
    codice:
    ' = |?()

  3. #3
    Grazie mille però non penso mi sia molto utile, avevo pensato anchio una cosa simile facendo un Pippo = Pippo.Replace("'","''") della stringa da immettere nel Db purtroppo come ho specifacto sopra sono dati molto sensibili e importanti che sarebbe buona cosa salvare nel loro completa integrità ovvero senza raddoppiare l apice.
    Nessuno conosce la soluzione dato che questo problema penso si sia presentato a molti

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    per scrivere apici in una stringa devi per forza raddoppiarli oppure mettere un escape "\" davanti a quelli che ti servono così da far capire a c# che sono caratteri e non terminazione di stringa

  5. #5
    OK grazie mi sembra di aver capito
    ma potresti farmi un esempio pratico?

    se io ho:

    string str = "RUSHI'93J9JJ";
    string query="INSERT INTO tab1 (campo1) VALUES ('" + str + "')";

    come posso modificarla la stringa?grazie tante

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Originariamente inviato da andrea85berna
    io ho un programma in c#
    Perché quindi non inoltrare la domanda all'area dedicata a C# e agli altri linguaggi del .NET Framework?

    Sposto la discussione...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Ok in effetti hai ragione è che l errore riguarda piu sql che c#... ho letto dei post precedenti a quanto pare tè conosci un metodo "elegante" per risolvere la questione o mi sbaglio?

  8. #8
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    aspetta.. tu parlavi di apicei di fine stringa.. io pensavo al c#

    spiega meglio il problema.. se scrivi

    codice:
    string str = "RUSHI'93J9JJ"
    c# te lo prende correttamente.. tu dici che sql non lo interpreta nel modo corretto giusto? della serie che termina la query dopo la scritta RUSHI

  9. #9
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249

    Re: Sql insert into : problema con gli apici

    Originariamente inviato da andrea85berna
    Salve a tutti io ho un programma in c# in cui svolgo delle query di inserimento in un Db sql server 2005.
    Fin qui tutto nulla di strano, il problema è che le stringhe da inserire che passo alla query posso contenere degli apici singoli che vanno in conflitto con gli apici di inzio e fine stringa.
    Come posso ovviare a questo problema?
    Avevo anche pensato di raddopiare gli apici che sono all interno della stringa quando le inserisco e di dimezzarli quando recupero la stringa.
    Purtroppo sono dati molto importati e vanno inseriti nella loro completa integrità.


    Avete idee al riguardo?
    Vi sarei molto grato

    possibile esempio di query
    INSERT INTO tab1 (campo1, campo2) VALUES ('sdj'sijs'jdjdj' , '7hh78t'huh990')
    USARE I PARAMETRI!!!!!

    esempi:
    http://msdn.microsoft.com/en-us/library/bbw6zyha.aspx
    http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx
    I got the remedy

  10. #10
    Secondo me ti basta fare un replace solo sulla stringa da inserire prima di metterla nella query SQL.
    Ovvero:
    codice:
    string str = "RUSHI'93J9JJ";
    str.Replace("'","''")
    string query="INSERT INTO tab1 (campo1) VALUES ('" + str + "')";
    In questo modo la query legge i doppi apici, ma li valuta come singolo apice, a differenza del singolo apice che lo interpreterebbe come "fine stringa".

    Quindi all'interno della tua tabella "tab1" avrai i dati integri.
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

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.