@ fileid附近的语法不正确

时间:2013-05-16 12:18:20

标签: c# sql

我正在尝试从c#中获取所有sql函数。 我已经将参数作为@ fileid和useid添加到函数中。但是得到一个错误。我无法弄清楚我的代码中的错误..

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();
        }

3 个答案:

答案 0 :(得分:4)

不要使用括号

exec fn_sh_GetTagListHitInfo @fileid,@UserID 

或者如果这是标量UDF,您也可以使用SELECT代替EXEC(在这种情况下需要模式名称)

SELECT dbo.fn_sh_GetTagListHitInfo (@fileid,@UserID )

答案 1 :(得分: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;

答案 2 :(得分:2)

更改cmd.CommandText值并尝试。

cmd.CommandText = "select fn_sh_GetTagListHitInfo(@fileid,@UserID)";