2

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

3 に答える 3

4

括弧を使用しないでください

exec fn_sh_GetTagListHitInfo @fileid,@UserID 

SELECTまたは、これが代わりに使用できるスカラー UDF の場合EXEC(この場合はスキーマ名が必要)

SELECT dbo.fn_sh_GetTagListHitInfo (@fileid,@UserID )
于 2013-05-16T12:20:29.980 に答える
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;
于 2013-05-16T12:28:56.200 に答える