如何使用与执行存储过程相同的c#执行sql用户定义函数
答案 0 :(得分:1)
你可以像任何其他sql一样使用它。这是一个例子:
using (var con = new SqlConnection(Properties.Settings.Default.ConnectionString))
using (var cmd = new SqlCommand("SELECT dbo.IsInteger(@value);", con))
{
con.Open();
cmd.Parameters.Add("@value", SqlDbType.VarChar).Value = "10";
bool isInt = (bool)cmd.ExecuteScalar();
}
dbo.IsInteger
是scalar-valued function,返回bit
(真/假)。
为了完整起见,即使它没有真正相关,也就是这样:
CREATE Function [dbo].[IsInteger](@Value VarChar(18))
Returns Bit
As
Begin
Return IsNull(
(Select Case When CharIndex('.', @Value) > 0
Then Case When Convert(int, ParseName(@Value, 1)) <> 0
Then 0
Else 1
End
Else 1
End
Where IsNumeric(@Value + 'e0') = 1), 0)
End