2013-05-16 2 views
2

나는 C#에서 모든 sql 함수를 사용하려고합니다. 함수에 매개 변수를 @ fileid 및 useid로 추가했습니다. 그러나 오류가 발생했습니다. 내가@ fileid 근처의 구문이 잘못되었습니다.

string query = "exec fn_sh_HitInfo(@fileid,@UserID)"; 
     SqlCommand cmd = new SqlCommand(); 
     cmd.CommandText = query; 
     cmd.CommandType = CommandType.Text; 
     cmd.Parameters.Add("@fileid", SqlDbType.BigInt).Value=fid; 
     cmd.Parameters.Add("@UserID", SqlDbType.BigInt).Value =UserID; 
     string taglist = string.Empty; 


     try 
     { 
      taglist = DBAction.ExecuteQuery(cmd, FilteringControl.ProjectID).ToString(); 
     } 
+1

오류가 발생했습니다. –

+3

@ Paul0712 - 제목에 있습니다. –

+0

@ fileid 근처에서 구문 오류가 발생했습니다. – eeshwr

답변

4

괄호

exec fn_sh_GetTagListHitInfo @fileid,@UserID 

또는이 스칼라 UDF의 경우는 다른 방법 대신 EXECSELECT을 사용할 수를 사용하지 마십시오 .. 내 코드에서 버그를 알아낼 수 (스키마가 필요합니다

SELECT dbo.fn_sh_GetTagListHitInfo (@fileid,@UserID) 
+0

도움을 주셔서 감사합니다. 너의 도움을 위해서 – eeshwr

2

당신은 exec 부분을 필요로하지 않으며, 당신이 올바른 구문을 알 필요가 없습니다)이 경우에 이름을 지정합니다.

//string query = "exec fn_sh_GetTagListHitInfo(@fileid,@UserID)"; 

    SqlCommand cmd = new SqlCommand();  
    cmd.CommandType = CommandType.StoredProcedure;  // just mark it as an SP 
    cmd.CommandText = "fn_sh_GetTagListHitInfo";  // only the name 
    cmd.Parameters.Add("@fileid", SqlDbType.BigInt).Value=fid; 
    cmd.Parameters.Add("@UserID", SqlDbType.BigInt).Value = FilteringControl.UserID; 
+0

고마워. – eeshwr

2

cmd.CommandText 값을 변경하고 시도하십시오.

cmd.CommandText = "select fn_sh_GetTagListHitInfo(@fileid,@UserID)"; 
관련 문제