Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Inserire dati tabelle correlate
martedì 21 aprile 2009 - 22.39
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
midigooo
Profilo
| Newbie
10
messaggi | Data Invio:
mar 21 apr 2009 - 22:39
Ciao a tutti,
ho due tabelle su un database SQL 2005: Regioni e Provincie, in relazione tra di loro, in modo tale che ad ogni regione possano essere associate più provincie (ho legato il campo "id" della tabella regioni ad un campo "id_regione" nella tabella provincie)
Utilizzando un winform in C# ho fatto il binding di alcuni valori della tabella Regioni a delle textbox e le provincie ad una griglia.
Se inserisco prima una regione, salvo e poi inserisco le varie provincie non ho nessun problema. Il problema nasce quando inserisco una regione, le varie provincie e salvo alla fine.
Ottengo un errore: "The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Provincie_Regioni". The conflict occurred in database "TestDB", table "dbo.Regioni", column 'r_id'."
Penso il problema sia dovuto al fatto che viene scritta la tabella regioni ma poi al momento del salvataggio delle provincie non sappia l'id della relazione, ma non so come risolvere il problema.
Garzie
Ciao
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 22 apr 2009 - 10:40
>Ciao a tutti,
Ciao!
>Se inserisco prima una regione, salvo e poi inserisco le varie
>provincie non ho nessun problema. Il problema nasce quando inserisco
>una regione, le varie provincie e salvo alla fine.
>Ottengo un errore: "The INSERT statement conflicted with the
>FOREIGN KEY constraint "FK_Provincie_Regioni". The conflict occurred
>in database "TestDB", table "dbo.Regioni", column 'r_id'."
Eh sì, prima devi farti tornare l'id dall'inserimento della tabella regione. Se l'hai passato tu, usi quello, se invece è un Identity, puoi fartelo tornare subito dopo l'inserimento del record con la funzione SCOPE_IDENTITY().
Maggiori info qui:
http://msdn.microsoft.com/it-it/library/ms190315.aspx
>Garzie
di nulla!
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
midigooo
Profilo
| Newbie
10
messaggi | Data Invio:
mer 22 apr 2009 - 11:41
Sto gestendo la cosa con due comandi di update:
this.regioniTableAdapter.Update(this.testDBDataSet.Regioni);
this.provincieTableAdapter.Update(this.testDBDataSet.Provincie);
le query non le ho scritte io sono quelle di default. sai come posso tirare fuori l'id?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 22 apr 2009 - 12:39
>Sto gestendo la cosa con due comandi di update:
>
>this.regioniTableAdapter.Update(this.testDBDataSet.Regioni);
>
>this.provincieTableAdapter.Update(this.testDBDataSet.Provincie);
>
>le query non le ho scritte io sono quelle di default. sai come
>posso tirare fuori l'id?
Non puoi evitare di usare quegli oggetti dando spazio al lancio di una stored procedure? Così con T-SQL fai tutto..
Asp.net o Windows Forms?
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
midigooo
Profilo
| Newbie
10
messaggi | Data Invio:
mer 22 apr 2009 - 12:43
utilizzo Windows Forms, solitamente scrivo le query di insert o select all'interno della tabella nel dataset, non ho mai utilizzato le stored procedure.
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 22 apr 2009 - 12:52
>utilizzo Windows Forms, solitamente scrivo le query di insert
>o select all'interno della tabella nel dataset, non ho mai utilizzato
>le stored procedure.
per modularità e comodità di questo tipo sarebbero proprio da usare
In teoria se tu metti a posto il dataset in locale e poi lanci l'aggiornamento sul db, dovrebbe arrangiarsi da solo. Però devono esserci le relazioni corrette.
Fatto sta che ti consiglio di scrivere una stored procedure in SQL Server, per nulla difficile e sfruttare la funzione che ti ho detto prima..
guarda qui:
http://technet.microsoft.com/it-it/library/ms187926.aspx
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
midigooo
Profilo
| Newbie
10
messaggi | Data Invio:
mer 22 apr 2009 - 14:44
Guardo la documentazione che mi hai postato e faccio 2 prove...
Tnk...
Torna su
Stanze Forum
Elenco Threads
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 !