Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can Dapper return values from a SQL function?

Tags:

dapper

I have a SQL function that returns an INT, when I try to call it via dapper I always get no results back.

I'm calling it like this:

var result = _connection.Query<int>("functionname", new {Parm = 123}, commandType: CommandType.StoredProcedure);

Does dapper support sql functions?

like image 291
ilivewithian Avatar asked Mar 26 '12 11:03

ilivewithian


2 Answers

Dapper should support it. Are you sure, your function is in the right database?

Here's a quick VB.NET example.

   Using conn = IDbConnectionFactory.CreateFromProvider("System.Data.SqlClient", CONNECTION_STRING)
                Dim sqlCommand As String = "SELECT dbo.fx_SumTwoValues(@valueOne,@valueTwo) As SumOfTwoValues"
                conn.Open()
                Dim result = (conn.Query(Of Integer)(sqlCommand, New With {.valueOne = 1, .valueTwo = 2})).First()
                Console.WriteLine(result.ToString)
            End Using

And here's the function I created on the same db I'm using in my connection.

CREATE FUNCTION fx_SumTwoValues
( @Val1 int, @Val2 int )
RETURNS int
AS
BEGIN
  RETURN (@Val1+@Val2)
END
GO
like image 84
Alex Avatar answered Sep 18 '22 02:09

Alex


Can use this:

result = _connection.Query<dynamic>("SELECT dbo.functionName(@Parm)", new {Parm = 123},commandType: CommandType.Text);
like image 26
Ahmad Aghazadeh Avatar answered Sep 17 '22 02:09

Ahmad Aghazadeh