Ho creato una funzione in SQL, ora ho bisogno di usare quella funzione nella mia applicazione C#.Come posso chiamare una funzione SQL in C#?
Ho provato ad utilizzare qualcosa di simile, ma sembra che sto facendo male dal momento che sto ricevendo:
Must declare the scalar value '@2064734117'
... quando mi danno 2064734117
come primo parametro e 1
come secondo parametro . Ecco il codice di cui sto parlando:
SqlConnection con = new SqlConnection(clsDb.connectionString);
string query = string.Format("select Function1(@{0},@{1}) ",
int.Parse(e.CurrentRow.Cells["CodeMeli"].Value.ToString()),1);
con.Open();
SqlCommand cmd = new SqlCommand(query,con);
SqlDataAdapter READER = new SqlDataAdapter();
READER.SelectCommand = cmd;
DataTable table = new DataTable();
READER.Fill(table);
radGridView1.DataSource = table;
con.Close();
E la mia funzione accetta due parametri interi e restituisce una tabella. L'ho controllato in Visual Studio e ha funzionato, ma non riuscivo a farlo funzionare nella mia applicazione.
E questa è la mia dichiarazione di funzione:
ALTER FUNCTION dbo.Function1
(
/*
@parameter1 int = 5,
@parameter2 datatype
*/
@ID int,
@clsTypeID int
)
RETURNS TABLE/* @table_variable TABLE (column1 datatype, column2 datatype) */
AS
/*BEGIN */
/* INSERT INTO @table_variable
SELECT ... FROM ... */
RETURN SELECT * FROM tblCLASS2
WHERE STNID = @ID AND CLASSTYPEID = @clsTypeID
/*END */
/*GO*/
Cosa errori state ottenendo? Un'altra opzione è scrivere una stored procedure che chiama la tua funzione e chiama semplicemente proc tramite ado.net/c# – kd7
Questo codice dovrebbe funzionare, quale errore sta dando? Si noti che questa funzione non * assomiglia a * una funzione, sarebbe meglio implementata in una 'stored procedure '. Tuttavia, dovrebbe funzionare in entrambi i modi. –
ottengo "Deve dichiarare il valore scalare" @ 2064734117 "". quando do 2064734117 come primo parametro e 1 come secondo parametro. – Breeze