0
我刚刚将我们的Web应用程序数据库从sybase sql任意位置11迁移到SQL Server 2008 R2 express,当我尝试编译与SQL Server接口的WCF服务时,我出现了多个错误,其中最明显的是下面的错误当我们的数据库是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
我注释掉设置OPTION MAX_STATEMENT_COUUNT和MAX_CURSON_COUNT,因为我不知道SQL Server 2008 R2 express中Sybase的等效命令。
嗯...例外是告诉你,问题出现在'CreateUser'中,所以也许这就是你应该开始寻找的地方。换句话说,我不认为'CreateFolder'是这里的问题。 –
这是一个纯粹的C#问题,与WCF,SQL Server或ASP.NET无关。 –
您需要将代码发布到'CreateUser'。 – doctorless