Ошибка неверных аргументов - PullRequest
0 голосов
/ 22 июля 2011

Я только что перенес нашу базу данных веб-приложений из sybase sql в любом месте 11 в SQL Server 2008 R2 Express, и когда я попытался скомпилировать службу WCF, которая взаимодействует с SQL-сервером, я обнаружил несколько ошибок, и среди них наиболее заметна та, что ниже.видел эту проблему, когда наша база данных была sybase.

Error  5 The best overloaded method match for 
'GlobeMailServiceLibrary.GMDatabaseService.KioskDataSetTableAdapters.Kiosk.CreateFolder(int?, 
string, bool?, bool?, ref int?)' has some invalid arguments
C:\WebMailDev\Code\GlobeMailServiceLibrary\GMDatabaseService\GMDatabaseService.40
 13 GlobeMailServiceLibrary

Вот метод службы WCF, из которого вызывается и выполняется хранимая процедура: -

private int CreateFolder(int iUser, string strFolder, bool bUserCreate, bool bOutgoing)
    {
        int iFolder;
        DBEncoder.EncodeObject(ref strFolder);
        KioskAdapter.CreateFolder(iUser, strFolder, bUserCreate, bOutgoing, out
                                  iFolder);            
        return iFolder;
    }

Вот определение хранимой процедуры:-

create procedure dbo.CreateFolder( @v_userID integer,@v_foldername varchar(512),@v_IsUserDefined 
                                   bit,@v_IsOutGoing bit,@v_folderID integer Output) 
    AS
    begin
       --set option MAX_STATEMENT_COUNT = 0;
       --set option MAX_CURSOR_COUNT = 0;
        insert into GCK_Folder( Foldername,IsUserDefined,IsOutGoing,UserID ) values( 
                                @v_foldername,@v_IsUserDefined,@v_IsOutGoing,@v_userID ) ;
        set @v_folderID = @@IDENTITY
 end
 go

Я закомментировал Set OPTION MAX_STATEMENT_COUUNT и MAX_CURSON_COUNT, потому что я не знаю эквивалентную команду Sybase в SQL Server 2008 R2 express.

1 Ответ

0 голосов
/ 22 июля 2011

Проблема, с которой вы столкнулись, заключается в том, что GlobeMailServiceLibrary.GMDatabaseService.KioskDataSetTableAdapters.Kiosk.CreateFolder ожидает ref int? для последнего параметра, и вы вместо этого передаете параметр out, который не соответствует требуемой сигнатуре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...