2014-12-02 2 views
-6

как выполнить пользовательскую функцию, определенную пользователем, с использованием C#, такой же, как и для выполнения хранимой процедурыКак выполнить пользовательскую функцию sql, используя C#?

+0

Я подумал, что было бы, независимо от того, плохо стереть комментарий – Matt

ответ

0

Вы можете использовать его, как и любой другой 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 
Смежные вопросы