@ fileid附近语法错误

本文关键字:语法 错误 fileid | 更新日期: 2023-09-27 18:13:48

我试图从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();
        }

@ fileid附近语法错误

不要使用括号

exec fn_sh_GetTagListHitInfo @fileid,@UserID 

或者如果这是一个标量UDF,您可以选择使用SELECT而不是EXEC(在这种情况下需要模式名称)

SELECT dbo.fn_sh_GetTagListHitInfo (@fileid,@UserID )

您不需要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;

更改cmd。CommandText值并尝试。

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