3 messaggi dal 25 marzo 2011
Ciao a tutti,
sono alle prime armi con i linguaggi di programmazione e sto seguendo diversi tutorial su webmatrix, in questo momento sto cercado di fare una select su un db di prova passando la chiave di ricerca da form, ma purtroppo rivevo il seguene errore, HELP dove sbaglio?

Server Error in '/' Application.
--------------------------------------------------------------------------------

A parameter is missing. [ Parameter ordinal = 1 ]
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlServerCe.SqlCeException: A parameter is missing. [ Parameter ordinal = 1 ]

Source Error:


Line 14: var varsisteman = Request["sisteman"];
Line 15: var db = Database.Open("testdb");
Line 16: var infopc = db.Query("SELECT * FROM WS WHERE SystemName=@varsisteman");
Line 17:
Line 18: <table>
_______________________________________________
27 messaggi dal 15 luglio 2003
Il problema è che tu vuoi eseguire una query che ha un parametro
@varsisteman ma non gli passi il suo valore.

Il metodo Query accetta come parametri l'istruzione SQL da eseguire ed un array con i valori dei parametri (Ovviamente è opzionale in quanto potresti voler esequire una query senza parametri)

Prova così:

var infopc = db.Query("SELECT * FROM WS WHERE SystemName=@varsisteman", "tuovalore");


PS. Se nella tua query ai più parametri allora li devi passare separati da ','

ES. db.Query("SELECT * FROM tabella WHERE campo1=@campo1 and campo2=@campo2", "valorecampo1", "valorecampo2");

Ciao
3 messaggi dal 25 marzo 2011
Ciao,
intanto grazie per la risposta :), io pensavo che creando una variabile (in questo caso "varsisteman" ed assegnandogli il risulato della request del form questa mantenesse il suo valore), dove devo prendere il valore da passare alla query? Voglio imparare pleaseee :)

<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>


@{
if(IsPost)
{

var varsisteman = Request["sisteman"];
var db = Database.Open("testdb");
var infopc = db.Query("SELECT * FROM WS WHERE SystemName=@varsisteman");

<table>
<thead>
<tr>
<th>System Name</th>

</tr>
</thead>
<tbody>
@foreach(var row in infopc){
<tr>
<td>@row.SystemName</td>

</tr>
}
</tbody>
</table>

}
else
{
<form method="post" action="">
<fieldset>
<legend>Sistama</legend>
<div>
<label for="sisteman">Sistema:</label>
<input type="text" name="sisteman" value="prova1" />
</div>
<div>
<input type="submit" value="Submit" />
</div>
</fieldset>
</form>
}
}

</body>
</html>
27 messaggi dal 15 luglio 2003
In effetti alla variabile varsisteman viene assegnato un valore, ma questo deve essere passato alla query.

Quindi:

var infopc = db.Query("SELECT * FROM WS WHERE SystemName=@varsisteman" , varsisteman);

Ciao.
3 messaggi dal 25 marzo 2011
Funziona! sei un grande:)
Grazie

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.