Tôi đã tạo một hàm trong SQL, bây giờ tôi cần sử dụng hàm đó trong ứng dụng C# của tôi.Làm cách nào để gọi hàm SQL trong C#?
tôi đã cố gắng sử dụng một cái gì đó như thế này, nhưng có vẻ như tôi đang làm sai vì tôi nhận được:
Must declare the scalar value '@2064734117'
... khi tôi đưa ra 2064734117
như tham số đầu tiên và 1
như tham số thứ hai . Đây là mã tôi đang nói về:
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();
Và hàm của tôi lấy hai tham số nguyên và trả về bảng. Tôi đã kiểm tra nó trong Visual Studio và nó đã làm việc, nhưng tôi không thể làm cho nó hoạt động trong ứng dụng của tôi.
Và đây là khai báo hàm của tôi:
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*/
Bạn gặp phải lỗi gì? Ngoài ra, một tùy chọn là viết một thủ tục lưu trữ gọi hàm của bạn và chỉ cần gọi proc qua ado.net/c# – kd7
Mã này sẽ hoạt động, lỗi nào được cung cấp? Lưu ý rằng hàm này không * giống như * một hàm, nó sẽ được triển khai tốt hơn trong một 'thủ tục lưu sẵn'. Tuy nhiên, nó sẽ hoạt động theo một trong hai cách. –
tôi nhận được thông báo "Phải khai báo giá trị vô hướng '@ 2064734117'". khi tôi đưa 2064734117 làm tham số đầu tiên và 1 làm tham số thứ hai. – Breeze