basim salih

basim salih

  • NA
  • 84
  • 8.9k

Help me..calling a scalar function in sql server within c#?

Dec 11 2017 2:37 PM
i have a scalar function "[finance_dep].[sum_view1]" in sql server :
  1. ALTER function [finance_dep].[sum_view1] (@dt1 datetime, @dt2 datetime )  
  2. returns decimal  
  3. as begin  
  4. Declare @d decimal  
  5. set @d=(select sum([amount_dnr]) from [finance_dep].[view1] where [wsl_date] between @dt1 and @dt2)  
  6. return @d  
  7. end  
when i calling it from c#:
  1. public static decimal sum_v(DateTime @dt1, DateTime @dt2)  
  2. {  
  3. return exscalarfunction("select cast(finance_dep.sum_view1(@dt1,@dt2) as decimal) ", CommandType.Text,  
  4. CreateParam("@dt1", SqlDbType.DateTime, @dt1),  
  5. CreateParam("@dt2", SqlDbType.DateTime, @dt2));  
  6. }  
  7. protected static decimal exscalarfunction(string querystoredprocedure, CommandType type, params SqlParameter[] param)  
  8. {  
  9. cn.Open();  
  10. //*******************  
  11. decimal f;  
  12. cmd = new SqlCommand(querystoredprocedure, cn);  
  13. cmd.CommandType = type;  
  14. cmd.Parameters.AddRange(param);  
  15. //********************  
  16. f = (decimal) cmd.ExecuteScalar();// here appear error with message ()  
  17. //***********************************  
  18. cn.Close();  
  19. return f;  
  20. }  

Answers (4)