Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Insert Into

  1. #1

    Insert Into

    Salve!
    Ho una tabella(calendario)tramite una SELECT la ordino per 3 campi vorrei scrivere il risultato della Query nella tabella calendario2.
    Io ho provato in questo modo:

    SqlConnection1.Open()
    SqlCommand3.CommandText = "SELECT * FROM calendario ORDER BY dal,oggetto,categoria"
    Dim dr As SqlDataReader
    dr = SqlCommand3.ExecuteReader()
    Dim dr1 As SqlDataReader
    If dr.HasRows() Then

    Do While dr.Read()
    Dim giorno = Month(dr.Item("dal")) & "/" & Day(dr.Item("dal")) & "/" & Year(dr.Item("dal"))
    Dim giorno2 = Month(dr.Item("al")) & "/" & Day(dr.Item("al")) & "/" & Year(dr.Item("al"))
    cmdstrSql.CommandText = "INSERT INTO claudia.calendario2(dal,al,evento) VALUES ('" & giorno & "','" & giorno2 & "','" & dr.Item("evento") & "')"
    dr1 = cmdstrSql.ExecuteReader()
    Loop
    dr.Close()...

    Facendo questo mi da: Alla connessione è già associato un DataReader aperto, che deve essere chiuso.
    Come posso risolverlo?!

    Grazie
    Claudio

  2. #2
    Stai sbagliando metodi. Se devi effettuare un inserimento con la clausola sql insert into.... non e' corretto usare executereader ma semmai executenonquery che come risultato ti da solo il numero di righe affette da modifiche (nel caso specifico 1).
    Quindi invece di
    codice:
    dr1 = cmdstrSql.ExecuteReader()
    sostituisci con
    codice:
    cmdstrSql.Executenonquery
    naturalmente il command dovra' avere associata una connection aperta prima di essere eseguito
    Saluti a tutti
    Riccardo

  3. #3
    Grazie...ma il problema è che trova il datareader aperto ma non so dove lo devo chiudere...mi sai dare una mano... :quipy:

    grazie

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.