Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
操作数类型冲突:int与唯一标识符c#Dapper.Net不兼容_C#_Sql Server 2008_Dapper - Fatal编程技术网

操作数类型冲突:int与唯一标识符c#Dapper.Net不兼容

操作数类型冲突:int与唯一标识符c#Dapper.Net不兼容,c#,sql-server-2008,dapper,C#,Sql Server 2008,Dapper,我在stackoverflow上尝试了很多解决方案,但没有一个给我一个解决方案,我有下面的查询,它传递了三个参数 using (var sqlCon = new SqlConnection(Database.ReturnDatabaseConnection())) { var p = new DynamicParameters(); p.Add("@EmailAddress", emailAddress); p.Add("@UserId", SqlDbTy

我在stackoverflow上尝试了很多解决方案,但没有一个给我一个解决方案,我有下面的查询,它传递了三个参数

  using (var sqlCon = new SqlConnection(Database.ReturnDatabaseConnection()))
   {
     var p = new DynamicParameters();
     p.Add("@EmailAddress", emailAddress);
     p.Add("@UserId", SqlDbType.BigInt, direction: ParameterDirection.InputOutput);
     p.Add("@UniqueId", SqlDbType.UniqueIdentifier, direction: ParameterDirection.InputOutput);

     var t = sqlCon.Execute("RequestPasswordReset", p, commandType: CommandType.StoredProcedure);

     var b = p.Get<Int64>("@UserId");
     var c = p.Get<Guid>("@UniqueId");
    }
我得到的错误信息写为这个问题的标题,有人能解释我在这里做错了什么吗

表格结构如下:

CREATE TABLE [Reset].[PasswordReset](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[UserId] [bigint] NOT NULL,
[UniqueId] [uniqueidentifier] NOT NULL,
[DateRequested] [datetime] NOT NULL,
[DateCompleted] [datetime] NULL,
CONSTRAINT [PK_Reset]].[PasswordReset] PRIMARY KEY CLUSTERED 
(
[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
用户配置文件表(按要求)

CREATE TABLE [User].[User_Profile](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[UniqueId] [uniqueidentifier] NOT NULL,
[Username] [varchar](25) NOT NULL,
[EmailAddress] [varchar](320) NOT NULL,
[Password] [varchar](200) NOT NULL,
[ProfileStatus] [int] NOT NULL,
CONSTRAINT [PK_User.User_Profile] PRIMARY KEY CLUSTERED 
(
[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

我也遇到了同样的问题。 试试这个。它解决了我的问题

p.Add("@UserId",null,dbType: DbType.BigInt, direction: ParameterDirection.Output);
p.Add("@UniqueId",null,dbType: DbType.Guid, direction: ParameterDirection.Output,size:40);

我猜
Add
方法期望值作为第二个参数,如果输出也是一个参数。

数据库表中的
UniqueId
列是如何定义的?@zoharpled作为uniqueidentifers这是hole过程吗?你能提供这个表的ddl吗?很抱歉,我仍然不能重现这个问题。当我在我的环境中尝试它时,一切似乎都正常工作(这是sql server 2012,但我不认为这是问题所在)。问题出在c#本身的某个地方,而不是存储过程中。@ZoharPeled是的,我已经做到了,它可以工作,所以它与c#应用程序有关
CREATE TABLE [User].[User_Profile](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[UniqueId] [uniqueidentifier] NOT NULL,
[Username] [varchar](25) NOT NULL,
[EmailAddress] [varchar](320) NOT NULL,
[Password] [varchar](200) NOT NULL,
[ProfileStatus] [int] NOT NULL,
CONSTRAINT [PK_User.User_Profile] PRIMARY KEY CLUSTERED 
(
[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
p.Add("@UserId",null,dbType: DbType.BigInt, direction: ParameterDirection.Output);
p.Add("@UniqueId",null,dbType: DbType.Guid, direction: ParameterDirection.Output,size:40);