185 messaggi dal 24 marzo 2006
Salve. Ho questo problema.

Devo aggiornare dei dati dentro una tabella in un database SQL.

Attualmente cancello la tabella con il comando DELETE e poi inserisco tutte le righe una a una con il comando INSERT.

Come posso fare per eseguire uno script SQL come questo.

USE [xxxx]
GO

SET DATEFORMAT ymd
GO

SET NOCOUNT ON

INSERT INTO [dbo].[xxx] ([UNIQUE_ID], [T], [ID], [DESCRIZIONE], [NOME_FILE], [DIRETTORIO_FILE], [CODICE_ARTICOLO], [MATERIALE], [CODICE_ARTICOLO_2], [MATERIALE_2], [STATO], [CLIENTE], [PROGETTO], [FAMIGLIA], [CATEGORIA], [CLASSE], [NOTA], [FAI_ACQUISTA], [CREAZIONE_DATA], [ERP], [ERP_FOLDER]) VALUES (N'10000', N'A', N'Montaggi ( 11008 )', N'Montaggi ( 11008 )', N'Montaggi ( 11008 ).SLDASM', N'Y:\Archivio\Montaggi\', NULL, N'Specifiche non disponibili', NULL, NULL, N'RILASCIATO', N'Pommier Furgocar', NULL, N'4 - Catalogo G', N'Parte di studio', N'Studio', NULL, N'NO_DISTINTA', '20100505 00:00:00', NULL, NULL)
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
dopo l'eliminazione, dove prendi i nuovi dati da inserire? Su MSDN trovi la documentazione del comando INSERT, ci sono anche degli esempi che potrebbero esserti utili.
http://msdn.microsoft.com/en-us/library/ms174335.aspx#InsertExamples

In particolare ne trovi 3 interessanti.

ciao

Enjoy learning and just keep making
185 messaggi dal 24 marzo 2006
Grazie mille se stato di vero aiuto.

Adesso però ho un altro problema.
Quando la tabella da caricare è molto grossa, la pagina mi va in TimeOut dopo circa 90 secondi.
Come posso fare ad allungare il TimeOut.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
dal web.config puoi alzare il timeout di esecuzione della pagina aspx. Metti questo nel nodo system.web.
<!-- tre minuti -->
<httpRuntime executionTimeout="180" />


Anche i comandi SQL hanno un proprio timeout, quindi dovresti "aggiustare" anche quello agendo sulla proprietà CommandTimeout del SqlCommand, in caso tu non l'abbia già fatto.

Questo dovrebbe risolvere il problema, anche se 90 secondi a me sembra già un tempo molto alto.
Immagin che l'utente debba restare in attesa per tutta la durata del comando SQL, e questo non gli farà avere una buona esperienza di utilizzo dell'applicazione.
Dovresti, secondo me, spostare l'esecuzione del comando su un thread che gira in background. Dopo aver lanciato l'esecuzione, l'utente potrà continuare a navigare nell'applicazione, per poi tornare a controllare se l'esecuzione ha finito o meno.
Qui trovi un esempio.
http://www.codeproject.com/KB/aspnet/AsyncProcessingMessage.aspx?fid=197976&fr=26
Ti conosci la tua applicazione, valuta se vale la pena di metterlo in pratica.

ciao!
Modificato da BrightSoul il 12 giugno 2013 23.57 -

Enjoy learning and just keep making
185 messaggi dal 24 marzo 2006
Grazie mille. Ho risolto.
Lo so che non è bello fare attendere l'utente, ma in questo caso l'utente sono solo io e vale solo per questa pagina ...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.