Я создал функцию в SQL, теперь мне нужно использовать эту функцию в моем приложении C #.
Я пытался использовать что-то вроде этого, но, похоже, я делаю это неправильно, так как получаю:
Must declare the scalar value '@2064734117'
... когда я даю 2064734117
в качестве первого параметра и 1
в качестве второго параметра. Вот код, о котором я говорю:
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();
И моя функция принимает два целочисленных параметра и возвращает таблицу. Я проверил это в Visual Studio, и это сработало, но я не смог заставить его работать в моем приложении.
А это объявление моей функции:
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*/