DynamicData - Gestione SqlException

mercoledì 20 luglio 2011 - 13.06
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010  |  SQL Server 2008 R2  |  Chrome

offlineman Profilo | Newbie

Salve,
premetto che sono nuovissimo del forum e spero di non aver postato nel posto sbagliato. Premetto inoltre che ho cominciato da poco con le tecnologie Microsoft in particolare con Visual Studio 2010, C#, SqlServer2008R2 e DynamicData.
Ho un problema con i DynamicData e spero che qualcuno di voi mi potrà aiutare.
Ho un progetto realizzato con DynamicData Entity Framework, quindi ho un database ed un modello da cui ho aggiunto le mie tabelle del database.
In una tabella in particolare del Db ho un campo chiave primaria, intero, univoco.
Quando faccio partire l'applicativo e provo a fare un inserimento di questa tabella, mettendo nel fatidico campo un valore che già esiste, mi viene generata una SqlException.
Come faccio a gestire tale eccezione e quindi a far spuntare semplicemente un errore di validazione campo?

Gluck74 Profilo | Guru

>Chiave primaria, intero, UNIVOCO

Normalmente se tenti di inserire in un campo UNIVOCO un valore che esiste già!!!

mi spieghi meglio? mi fai vedere anche l'errore?

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

offlineman Profilo | Newbie

Si, provo ad essere più chiaro.
Tabella: Operazioni(numeroUnivoco,data,descrizione);
dove numeroUnivoco è un intero ed è chiave primaria.
Dato che non è autoincrementato, l'utente è costretto ad inserire manualmente il valore della chiave primaria.
Se l'utente commette l'errore di inserire un valore che è già presente nel database al momento di cliccare su inserisci nella pagina: http://localhost:51322/Operazioni/Insert.aspx
viene sollevato "giustamente" un eccezione che mi avverte che è "Impossibile inserire la chiave duplicata nell'oggetto 'dbo.Operazioni'."
Quello che non riesco a fare è quello di rimanere nella schermata di inserimento valori e far spuntare semplicemente un messaggio del tipo "numeroUnivoco già presente, inserire un altro numeroUnivoco".

(in allegato il tipo di eccezione)

OfflineMan

Gluck74 Profilo | Guru

ora ho capito.......

bene, non so minimamente come stai facendo questa operazione (gridView, FormView, CustomForm........)
comunque, dove hai l'esecuzione della query di insert (spero tu lo stia facendo con la query) metti un try:

try { ... ... command.ExecuteNonQuery(); ... } catch (SqlException errSql) { //gestisci l'errore dal database } catch (Exception err) { //gestisci l'errore generico }

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5