Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente di HTML.it L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186

    [VB.NET] Eseguire UPDATE SQL SERVER di tante righe con valori diversi

    Buongiorno,
    mi spiace se dal titolo non si capisce bene cosa devo fare, ma non sapevo cosa scrivere.

    Mi trovo a dover fare un'UPDATE di 400 righe assegnando ad ognuna un valore diverso.

    Volevo evitare di dover ripetere la funzione update 400 volte all'interno di un ciclo For, perciò chiedo se per caso esiste un modo per passare magari un'array o se ci sia un modo per costruire una query che permetta di fare tutto con una sola chiamata

    Grazie

  2. #2
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,000
    Prova a cercare Bulk insert.

  3. #3
    Prepara una tabella di appoggio con i nuovi valori e un id che la leghi alla tabella principale e poi vai di UPDATE JOIN

  4. #4
    Utente di HTML.it L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186
    Ciao, grazie per le risposte!

    Avevo già provato ad usare il BulkCopy in passato, però ora, sarò poco perspicace io, non riesco a trovare un esempio con il quale capire come fare l'update da un array ad una tabella in sql Server...

    Se avessi un link o un'idea da passarmi te ne sarei grato.
    Nel frattempo ovviamente continuo a cercare

  5. #5

  6. #6
    quella è una BulkInsert... non si doveva fare update?

  7. #7
    @SigAlexey, puoi fare un esempio con un paio di righe?

  8. #8
    Utente di HTML.it L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186
    Esatto, come dice optime io ho bisogno dell'Update.

    Io ora ho questo:

    codice:
    Sub Update(Tabella as String, parametri as String, where as String)
    
           mystring = "exec procUpdate '" & tabella & "', '" & param & "', '" & where & "'"  'Questa è una                                  storeProcedure che ho creato in precedenza
           ApriConnessione()
           SQLCmd.ExecuteNonQuery()
           ChiudiConnessione()
    
    End Sub
    
    Private Sub aggiornaParametri(arrayNumeri() as Integer, nRiga as Integer)
          For i as integer = 0 to 399
                Update("TABELLA1", "CONTENUTO = " & arrayNumeri(i), "ID = " & i & " AND NUMERO_RIGA = " &              nRiga)
          Next
    End Sub
    Vorrei evitare di usare il ciclo for perchè ci metto un bel po' ovviamente.
    Vorrei capire come mandare quell'array (o DataTable o quello che serve) come parametro nella riga corretta
    Ultima modifica di SigAlexey; 20-04-2020 a 13:34

  9. #9

  10. #10
    Utente di HTML.it L'avatar di SigAlexey
    Registrato dal
    May 2014
    residenza
    Treviso
    Messaggi
    186
    Si certo!

    codice:
    ALTER PROCEDURE [dbo].[procUpdate] @tabella varchar(100), @campi varchar(max), @parametro varchar(max)AS BEGIN SET NOCOUNT ON; DECLARE @sql varchar(max) SET @sql = ' UPDATE ' + @tabella + ' SET ' + @campi + ' WHERE ' + @parametro + ';'exec (@sql) END

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 © 2024 vBulletin Solutions, Inc. All rights reserved.