Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.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
C# Dapper无法分析列字符串_C#_Sql_.net_Sql Server_Dapper - Fatal编程技术网

C# Dapper无法分析列字符串

C# Dapper无法分析列字符串,c#,sql,.net,sql-server,dapper,C#,Sql,.net,Sql Server,Dapper,我有下表 create table tblWorkers ( Id int identity, WorkerId nvarchar(8), Username NVARCHAR(50) not null, Password NVARCHAR(12) not null, Token NVARCHAR(max) null, CONSTRAINT PK_WorkerId PRIMARY KEY (WorkerId) ) 当我尝试以下简洁的代码时,通过

我有下表

create table tblWorkers
(
    Id int identity,
    WorkerId nvarchar(8),

    Username NVARCHAR(50) not null,
    Password NVARCHAR(12) not null,
    Token NVARCHAR(max) null,
    CONSTRAINT PK_WorkerId PRIMARY KEY (WorkerId)
)
当我尝试以下简洁的代码时,通过 用户名:W01,密码=check123 我在分析列0(UserId=W01-String)“”时出错。FormatException:输入字符串的格式不正确

``


请告知。

Dapper希望SQL和.NET相同。错误提到UserId,代码示例将参数显示为username(而不是id)

你说‘通过时:用户名:W01’
错误显示为“错误解析列0(UserId=W01-String)”

这不是一个以纯文本形式存储密码的真实生产应用程序,对吗?请包含错误堆栈跟踪。@squillman否否。您可以查看以下链接中的示例:请包含
用户
类的定义。可能是从响应中反序列化
User.UserId
时出错。
        DynamicParameters parameters = new DynamicParameters();
        parameters.Add("@userName", loginModel.Username, DbType.String);
        parameters.Add("@password", loginModel.Password, DbType.String);
        using (IDbConnection con = _connectionManager.GetConnection())
        {
            con.Open();
            var result = con.Query<User>(StoredProcedures.uspAuthenticate, param: parameters, commandType: CommandType.StoredProcedure);
            return result.FirstOrDefault();
CREATE PROCEDURE [dbo].[uspAuthenticate] 
    @userName nvarchar(8),
    @password nvarchar(12)
AS
BEGIN

    SET NOCOUNT ON;

    select WorkerId
    from tblWorkers
    where Username = @username and Password = @password
END