100 messaggi dal 12 novembre 2001
Ciao a tutti,
questa query non mi funziona:

***
sqlCmd.CommandText = "UPDATE t_1 SET costo=(@param1 + (miocampo1*@param2)) WHERE miocampo2=@param3"
With sqlCmd.Parameters
.Add(New SqlParameter("@param1", valore1))
.Add(New SqlParameter("@param2", valore2))
.Add(New SqlParameter("@param3", valore3))
End With
***

Praicamente ho devo calcolare un campo del db (miocampo1) moltiplicarlo per un parametro e sommarlo ad un altro, scrivendo il risultato sul db in costo.

Cosa sbaglio?
al dilà del motivo per cui non funziona il codice sql, perche far fare a lui queste operazioni, qunado potresti farle via codice e passare il risulato dell'operazione?

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
100 messaggi dal 12 novembre 2001
Forse non mi sono spiegato:

Mia Tabella
id=1 Peso=10 Costo=0
id=2 Peso=20 Costo=0
id=3 Peso=30 Costo=0

Coefficiente di costo=3

Devo moltiplicare questo coefficiente per il peso di ogni riga e scrivere il risultato nel campo Costo.

Giulio

nostromo ha scritto:
al dilà del motivo per cui non funziona il codice sql, perche far fare a lui queste operazioni, qunado potresti farle via codice e passare il risulato dell'operazione?
Cosa vuol dire non funziona? Hai un errore di sintassi sql, non ottieni il risultato auspicato, il framework alza un'exception, altro?

Se esgui la query direttamente in SQL Server (con valori fittizzi al posto dei parametri) funziona?

Matteo Casati
GURU4.net
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
uly wrote:
Ciao a tutti,
questa query non mi funziona:
*
sqlCmd.CommandText = "UPDATE t_1 SET costo=(@param1 +
(miocampo1*@param2)) WHERE miocampo2=@param3"
With sqlCmd.Parameters
Add(New SqlParameter("@param1", valore1))
Add(New SqlParameter("@param2", valore2))
Add(New SqlParameter("@param3", valore3))
End With
*
Praicamente ho devo calcolare un campo del db (miocampo1)
moltiplicarlo per un parametro e sommarlo ad un altro, scrivendo il risultato sul db in costo.
Cosa sbaglio?
sinceramente non capisco il problema.. ti vengono sllevate eccezioni? posso provare a tradurre il tuo esempio in
SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.t (
Id int NOT NULL PRIMARY KEY,
Peso int NOT NULL,
Costo int NOT NULL
);
INSERT INTO dbo.t VALUES ( 1, 10, 0 );
INSERT INTO dbo.t VALUES ( 2, 20, 0 );
INSERT INTO dbo.t VALUES ( 3, 30, 0 );
GO
DECLARE @filtro int = 3;
DECLARE @Coefficiente int = 3;

SELECT *
FROM dbo.t;

UPDATE dbo.t
SET Costo = (@Coefficiente * Peso)
WHERE Id = @filtro;

SELECT *
FROM dbo.t;

GO
DROP TABLE dbo.t;
e mi funziona correttamente.. quindi, facendo seguito a Matteo e Nostromo, dove e che problema riscontri?
saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
100 messaggi dal 12 novembre 2001
Ciao,
scusatemi se non sono stato spiegato....;-)

Ero un po' scomodo su un pc non mio e ho scritto di fretta.

La query non fa quello che deve fare, aggiorna i campi
ma al posto di fare peso*coefficiente (10*2=20) mi scrive
solo il coefficiente (2).

Provo con la stored domani.

Grazie

Giulio
100 messaggi dal 12 novembre 2001
Faccio un UP,
nn ho ancora risolto il problema

Grazie
Ripeto:
Se esgui la query direttamente in SQL Server (con valori fittizzi al posto dei parametri) funziona?

Matteo Casati
GURU4.net

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.