[C#] Stranissimo comportamento applicazione WinForm/DB Sql Server

sabato 18 aprile 2009 - 10.43

WilOhmsford Profilo | Newbie

Ragazzi, qui si sfiora la fantascienza. Scusate per il titolo poco chiaro, ma sinceramente non sapevo nemmeno come definire questo "fenomeno".
Allora, per farvela breve ho una winform C# in cui inserisco dei dati in alcuni campi (semplici textbox). Alla pressione di un button il programma deve eseguirmi 4 cose:

- la memorizzazione dei dati inseriti nell'apposita tabella del database (SQL Server Express) connesso
- la creazione di una nuova tabella, sempre nello stesso DB, avente per nome il testo inserito in una delle textbox (ovviamente sempre la stessa)
- la creazione, per ora nella directory dell'eseguibile, di un file txt avente per nome lo stesso attribuito alla nuova tabella
- la stampa a video, come ulteriore conferma, in una apposita RichTextBox, dei dati appena immessi (più degli eventuali già presenti nel DB), tramite la lettura del DB effettuata con un SQLDataReader.

Il tutto, naturalmente, solo se i dati immessi non sono già presenti. In questo caso, ho già previsto un try/catch che mi restituisce un messagebox di errore.

Ora, premesso che vado ad inserire dati sempre nuovi e non duplicati, la cosa strana è che il file txt viene creato, che nella RichTextBox ricevo la stampa dei dati appena immessi (e che dunque dovrebbero essere appena stati memorizzati nel database, no?), ma... nel DB non viene memorizzato un bel niente! Inoltre non mi viene creata neanche la tabella nuova!
Beninteso che ho cliccato più volte "Aggiorna" sul database in "Esplora Server" e che ho rieseguito manualmente la query sulla tabella per visualizzarne il contenuto. Risultato: niente.

Ora, a parte il domandarsi come sia possibile "vedere" una cosa che non esiste... cosa può essere succcesso, visto che non ho modificato nemmeno una virgola del mio codice, e che fino a ieri funzionava tutto?
Spero di essere stato chiaro, per qualunque chiarimento chiedetemi; vi prego fatemi sapere perchè sto cominciando a pensare di soffrire di allucinazioni visive!

R3GM4ST3R Profilo | Junior Member

Ciao!
Ma il database lo hai aggiunto con visual studio 2008???
Se si, controlla dall'esplora soluzioni le proprietà del file del database...Una delle voci delle proprietà è copia nella directory di output, una roba simile...questa opzione fa si che ogni volta che viene mandata in esecuzione l'applicazione da VS, il database venga ripristinato con il database "vuoto" che vedi con il visual studio!

Altra ipotesi, è che stai usando le transazioni e non esegui il commit alla fine di fare le insert, così facendo non "salvi" le modifiche nel database.

Fammi sapere!


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

WilOhmsford Profilo | Newbie

Ciao, grazie per avermi risposto.
Dunque, sì, il database l' ho aggiunto a progetto nuovo, ma in Visual Studio 2005. In "Proprietà", alla voce "copia nella directory di output" ho il valore "copia sempre". Per scrupolo ho provato anche le altre due voci; con "non copiare", appena avvio il debug mi restituisce subito un errore JIT; con "copia se più recente" invece, non cambia nulla.
Infine, non uso transazioni.
Domanda stupidotta: può essere che si sia corrotto qualche file? E se sì, c'è un modo per riparare che non sia riscrivere tutto quanto daccapo? (chiedo questo perchè il comando "Rigenera tutto" non porta ad alcun risultato...)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5