SQL で関数を作成したので、C# アプリケーションでその関数を使用する必要があります。
私はこのようなものを使ってみましたが、私が得ているので間違っているようです:
Must declare the scalar value '@2064734117'
...2064734117
最初のパラメーターと1
2番目のパラメーターとして与える場合。これが私が話しているコードです:
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();
私の関数は 2 つの整数パラメータを取り、テーブルを返します。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*/