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
VB.NET ED SQLSERVER - Errore a seguito di StoredProcedure
domenica 20 giugno 2010 - 19.45
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
86Marco
Profilo
| Expert
889
messaggi | Data Invio:
dom 20 giu 2010 - 19:45
Salve nella mia applicazione VB.net ho due tabelle cosi impostate:
TABELLA: ContiCorrenti (idconto (int-identità, IntestatarioConto (varchar))
TABELLA: MovimentazioneConto (idmov, Descrizione, Entrate, Uscite, idconto (chiave esterna alla tabella ContiCorrenti)
Effettuo tramite i diagrammi le relazioni alle due tabelle.
Ho infine una sp che mi dovrebbe prendere dei parametri da dei controlli di un form per poi inserirli nella tabella movimetazione.
La stored procedue è questa:
ALTER PROCEDURE dbo.InsertMovimentazione
@Descrizione varchar,
@Entrate money,
@Uscite money,
@idconto varchar
AS
Insert into MovimentazioneConto (Descrizione, Entrate, Uscite, idconto)
values (@Descrizione, @Entrate, @Uscite, @idconto)
RETURN
Questo è il codice che utilizzo al click del button sul form
Dim con As New SqlConnection
con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "InsertMovimentazione"
cmd.Parameters.AddWithValue("Descrizione", TextBox1.Text)
cmd.Parameters.AddWithValue("Entrate", TextBox2.Text)
cmd.Parameters.AddWithValue("Uscite", TextBox3.Text)
cmd.Parameters.AddWithValue("idconto", ComboBox1.SelectedValue)
con.Open()
cmd.Connection = con
cmd.ExecuteNonQuery()
con.Close()
Mi viene però restituito il seguente errore:
L'istruzione INSERT è in conflitto con il vincolo FOREIGN KEY "FK_MovimentazioneConto_ContiCorrenti". Il conflitto si è verificato nella tabella "dbo.ContiCorrenti", column 'idconto' del database "C:\USERS\MARCO\DESKTOP\WINDOWSAPPLICATION1\WINDOWSAPPLICATION1\BIN\DEBUG\DATABASE1.MDF". L'istruzione è stata interrotta.
VI PREGO E' UNA COSA ESTREMAMENTE IMPORTANTE. SPERO POSSIATE VELOCEMENTE RISPONDERMI.
E' un pomeriggio intero che sto uscendo pazzo.
Grazie mille a tutti.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
dom 20 giu 2010 - 19:52
>Mi viene però restituito il seguente errore:
>L'istruzione INSERT è in conflitto con il vincolo FOREIGN KEY
>"FK_MovimentazioneConto_ContiCorrenti". Il conflitto si è verificato
>nella tabella "dbo.ContiCorrenti", column 'idconto' del database
>"C:\USERS\MARCO\DESKTOP\WINDOWSAPPLICATION1\WINDOWSAPPLICATION1\BIN\DEBUG\DATABASE1.MDF".
>L'istruzione è stata interrotta.
>
>VI PREGO E' UNA COSA ESTREMAMENTE IMPORTANTE. SPERO POSSIATE
>VELOCEMENTE RISPONDERMI.
>E' un pomeriggio intero che sto uscendo pazzo.
Stai semplicemente inserendo una riga nella tabella dbo.MovimentazioneConto riferita ad un idconto non presente nella tabella dbo.ContiCorrenti, ed avendo definito un vincolo di FK l'operazione viene giustamente interrotta.
Come risolvere? Inserisci quell'idconto nella tabella dbo.ContiCorrenti prima di tentare di inserirlo in dbo.MovimentazioneConto.
>Grazie mille a tutti.
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
86Marco
Profilo
| Expert
889
messaggi | Data Invio:
dom 20 giu 2010 - 19:55
Ei ciao e grazie per la supervelocità.
Tecnicamente ho già all'interno della tabella IDCONTO due recordo:
idconto Intestatario
2222 Pinco Pallino
1111 Tizio
Nonostante io passi il valore idconto sulla storedProcedure il risultato è sempre lo stesso.
Cioè errore!!
Come mai secondo te?
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
dom 20 giu 2010 - 19:57
>Ei ciao e grazie per la supervelocità.
>
>Tecnicamente ho già all'interno della tabella IDCONTO due recordo:
>
>idconto Intestatario
>2222 Pinco Pallino
>1111 Tizio
>
>Nonostante io passi il valore idconto sulla storedProcedure il
>risultato è sempre lo stesso.
Quale valore? Se passi 1111 o 2222 non ci sono problemi, se passi 3333 i problemi ci sono eccome
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
86Marco
Profilo
| Expert
889
messaggi | Data Invio:
dom 20 giu 2010 - 20:03
E' propio per questo che sto uscendo pazzo :)
Questa è la mia tabella
286x146
18Kb
Ho provato anche semplicemente passandogli i parametri da codice in questa maniera
Dim con As New SqlConnection
con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"
Dim cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "InsertMovimentazione"
cmd.Parameters.AddWithValue("Descrizione", "Bonifico ricevuto")
cmd.Parameters.AddWithValue("Entrate", 1222)
cmd.Parameters.AddWithValue("Uscite", 0)
cmd.Parameters.AddWithValue("idconto", "2222")
con.Open()
cmd.Connection = con
cmd.ExecuteNonQuery()
con.Close()
Ma il problema è esattamente lo stesso!!!!!
Come te lo spieghi :) ??
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
dom 20 giu 2010 - 20:14
>Come te lo spieghi :) ??
Con i dati che hai postato non me lo spiego.
Eseguendo la sp da SSMS hai problemi?
Se la risposta è no, allora i problemi li hai lato client e qui non ti posso aiutare, se invece li hai significa che non hai postato tutte le informazioni e ci nascondi qualcosa
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
86Marco
Profilo
| Expert
889
messaggi | Data Invio:
dom 20 giu 2010 - 23:05
ehehe si :)
le informazioni di errore (lo stesso errore) l'ho pure se esegui la sp dal tools grafico!!! :)
Questo è quello che ho fatto :)
1) Ho creato le due tabelle:
ContiCorrenti:
numeroconto - varchar - chiave primaria
IntestatarioConto - varchar
MovimentiConto:
idmovimento - varchar - chiave primaria - colonna identità
Descrizione - varchar
Entrate - money
Uscite - money
numeroconto - varchar
2) Creo le relazioni tra le due tabelle, in particolare creando i diagrammi creo la relazione tra numeroconto di conticorrenti e movimenticonto.
3) Creo la storedprocedure e la cerco di eseguire tramite vb (come nel codice sopra).
Nonostante io abbia dentro la tabella conticorrente due record con un numeroconto già presente, sulla tabella movimenticonto mi restiuisce sempre l'errore!!!! XCHE
86Marco
Profilo
| Expert
889
messaggi | Data Invio:
lun 21 giu 2010 - 08:41
Risolto!!!
ho proprio risolto un minuto fa! :)
in SQL effettivamente mi faceva la insert.
Il problema era di sintassi nel senso che come paramtri della SP settavo varchar senza dichiararare la dimensione :)
CIo mi causava l'errore poichè se inserivo come numeroconto = 1122 esendo varchar mi inseriva solo il primo valore cioè 1, restiuendomi un errore poichè non esisteva un record correlato OVVIAMENTE :)
Grazie!
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 !