我正在尝试从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();
}
答案 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)";