2013-08-07 2 views
1

함수를 사용하기 전에 함수를 사용했습니다. 난 내 SQLSERVER에 추가 -> 데이터베이스 -> Programmabality ---> 기능 ---> Scalered-값 기능 응용 프로그램에서 사용하기 전에

이런 내가 사용하는 응용 프로그램에서 :

  dbo.MyFunc(_txt.text); 

하지만 지금은 내 프로젝트에서이 기능이 필요하다. 그것의 mvc4 웹 사이트. 그런 식으로 사용할 수 있습니까? 그리고이 함수를 어디에 추가해야합니까? 물론 응용 프로그램을 좋아하지만 db.MyFunc()가 내 수업에서 인식되지 않습니다.

그래서, 내 프로젝트는 CodeFirst이다. 당신이 코드를 처음으로 DB 접근 방식을 사용하는 것처럼

답변

0

은, 코드 변경은 SQL 서버 DB에 반영됩니다. 따라서 C#으로 구현해야합니다.
다음은 한 가지 예입니다. 그 스칼라 값 함수를 데이터베이스에 연결을 설정하고 실행하는 것

public Object MyFunc(String txt_text) 
{ 
    Object result = null; 

    String connectionstring = "DataSource=.\SQLEXPRESS;" 
          + "Initial Catalog=DEMO;" 
          + "Integrated Security=True"; // or whatever you use.... 
    using (SqlConnection connection = new SqlConnection(connectionString)) 
    { 
     using (SqlCommand command = new SqlCommand("SELECT dbo.Myfunc(@p1)", connection)) 
     { 
      command.CommandType = CommandType.Text; 
      command.Parameters.AddWithValue("@p1", txt_text); 
      result = command.ExecuteScalar(); 
     } 
    } 

    return result; 
} 

는 다음 result 내 결과를 배치 : 당신은 그냥이 특정 기능에 직접 액세스하려면 How to: Create and Run a CLR SQL Server User-Defined Function

using System.Data.SqlTypes; 
using Microsoft.SqlServer.Server; 

public partial class UserDefinedFunctions 
{ 
    public const double SALES_TAX = .086; 

    [SqlFunction()] 
    public static SqlDouble addTax(SqlDouble originalAmount) 
    { 
     SqlDouble taxAmount = originalAmount * SALES_TAX; 

     return originalAmount + taxAmount; 
    } 
} 
+0

그러나, 다음 코드는 먼저 ... 많이 여기 – Paritosh

0

에서있어 . 이것은 다른 데이터베이스 인프라를 방정식에서 제외하고 SQL 함수를 직접 호출 할 수있게 해줍니다. 당신은 C#에서이를 구현하려는 (또는 VB 말)하지 않는 경우

+0

안녕하세요 브래드 크리스티을 도움이되지 않습니다. 내 연결 문자열이 평소와 같지 않습니다. 이런 식으로 : public SportContext() : base (SharedDll.Connections.ConnectionString()). 어떻게 당신이 쓴 것과 같은 연결 문자열에서 사용할 수 있습니까? – niknaz

+0

하드 코딩 된 조정 대신 연결 문자열 방법에 대한 직접 참조를 사용하십시오. –

+0

또한 sportscontext가 DbContext의 인스턴스입니까? –

관련 문제