2017-10-10 6 views
0

intの配列をユーザー定義のテーブル型のストアドプロシージャに渡して、テーブルに挿入しようとしています。ここでWCFサービスを介してストアドプロシージャにintのリストを渡す

は私がしようとしたものです:

  1. タイプを作成:

    ALTER PROCEDURE [dbo].[PS_EditerNouveauContrat_MRH] 
        @CODE_GARANTIES GarantiesList READONLY 
    AS 
    BEGIN 
        SET NOCOUNT ON; 
    
        INSERT INTO dbo.MVT_GARANTIES (CODE_GARANTIE) 
         SELECT c.code_garantie 
         FROM @CODE_GARANTIES c; 
    

しかし、この:

CREATE TYPE [dbo].[GarantiesList] AS TABLE ([code_garantie] [nvarchar](max) NULL) 
  • を&は、ストアドプロシージャに挿入しなさい失敗しました。

    のマッピングがに[なPublicKeyToken = b77a5c561934e089]、[可能System.Int32、mscorlib、バージョン= 4.0.0.0、文化=中立]オブジェクト型システムCollections.Generic.List`1から存在していない:私はエラーを得ました既知のマネージプロバイダのネイティブタイプ。

    誰でもこの問題を解決する方法を知っていますか?

  • +0

    https://stackoverflow.com/q/5595353/3925232 –

    答えて

    0
    -- your Insert Statement is Not Proper try this 
        ALTER PROCEDURE [dbo].[PS_EditerNouveauContrat_MRH] 
         @CODE_GARANTIES NVARCHAR(MAX) 
        AS 
        BEGIN 
         SET NOCOUNT ON; 
         DECLARE @Sql_string NVARCHAR(4000) 
          SET @Sql_string ='INSERT INTO dbo.MVT_GARANTIES (CODE_GARANTIE) 
             SELECT code_garantie 
             FROM '[email protected]_GARANTIES+'' 
          PRINT @Sql_string 
          EXEC (@Sql_string) 
    
        END 
    
    +0

    の可能性のある重複したIは、挿入クエリのCODE_GARANTIESが認識 ではない、と私はこのエラーを持っている今、これを試してみました:スカラー変数CODE_GARANTIESでなければなりません宣言された。 – KhadBr

    +0

    今私はこのエラーがあります:List'1からIEnumerable'1にパラメータ値を変換できませんでした。これは私のWCFサービスから渡しているsqlParameterに起因する可能性がありますか?これは私がやったことです: SqlParameter CODE_GARANTIES_Param =新しいSqlParameter( "@ CODE_GARANTIES"、CODE_GARANTIES); CODE_GARANTIES_Param.SqlDbType = SqlDbType.Structured; command.Parameters.Add(CODE_GARANTIES_Param); – KhadBr

    +0

    @KhadBr exec PS_EditerNouveauContrat_MRH parameter_Name in sql serverそしてあなたが直面しているエラーを確認する –

    関連する問題