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
ASP.NET 2.0 / 3.5 / 4.0
Problema con Insert SqlDataSource
giovedì 26 giugno 2008 - 18.05
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
paolomanfrin
Profilo
| Newbie
27
messaggi | Data Invio:
gio 26 giu 2008 - 18:05
Buongiorno a tutti... ho il seguente problema:
Viene sollevata una eccezione [ Sintassi non corretta in prossimità di 'InsertOrder' ] quando tento di fare una Insert usando
SqlDataSource e una stored procedure di nome InsertOrder memorizzata su SQL Server 2005.
============================================================
La STORED PROCEDURE è la seguente
CREATE PROCEDURE dbo.InsertOrder
@CustomerID nvarchar(5),
@EmployeeID int,
@OrderAmount money
AS
INSERT INTO [Orders]([CustomerID],[EmployeeID],[OrderDate],[Amount],[Paid])
VALUES (@CustomerID,@EmployeeID,GETDATE(),@OrderAmount,0)
==================================================================
La chiamata da codice viene fatta in questo modo:
SqlDataSource sqlDS = new SqlDataSource();
sqlDS.ConnectionString = CONN_STRING;
sqlDS.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
sqlDS.InsertParameters.Add("CustomerID", order.CustomerID);
sqlDS.InsertParameters.Add("EmployeeID", order.EmployeeID.ToString());
sqlDS.InsertParameters.Add("OrderAmount", order.Amount.ToString());
sqlDS.InsertCommand = "InsertOrder;
sqlDS.Insert();
sqlDS.InsertParameters.Clear();
===================================================
Non riesco a capire che errore commetto...
Grazie a tutti coloro che sapranno fornirmi indicazioni in merito.
Paolo
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
ven 27 giu 2008 - 10:38
Così, detto al volo, se customerID è un numero progessivo automativo non lo puoi inserire così, devi toglierlo dalla query.
ciao
Furio
http://www.opsi.ws
paolomanfrin
Profilo
| Newbie
27
messaggi | Data Invio:
ven 27 giu 2008 - 11:51
Ciao, No non è progressivo. OrderID è progressivo, solo che devo inserire CustomerID e EmployeeID per tener traccia di chi ha compilato l'ordine ( L'impiegato ) e a chi è riferito l'ordine ( Il cliente ).
Stroke
Profilo
| Junior Member
114
messaggi | Data Invio:
mar 1 lug 2008 - 09:29
Un altro errore possibile è un campo in tabella che non può essere lasciato vuoto, oppure la non corrispondenza dei tipo di campi. CustomerID è presumibilmente il codice utente nella store lo metti come testo.
Nel codice che hai inserito:
sqlDS.InsertCommand = "InsertOrder;
mancano gli apici di chiusura
ciao
Furio
http://www.opsi.ws
paolomanfrin
Profilo
| Newbie
27
messaggi | Data Invio:
gio 3 lug 2008 - 16:17
Gli apici del comando sono stata una svista nel Copy & Paste.
Comunque il problema era banalmente il seguente...
Avevo omesso il seguente comando:
sqlDS.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;
che di default è posto su Text
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 !