简体   繁体   English

Dapper 无法解析列字符串

[英]Dapper Not able to parse column String

I have the following table我有下表

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)
)

When I try the following Dapper code, by passing Username:W01, Password=check123 I get an error, Error parsing column 0 (UserId=W01 - String)'.FormatException: Input string was not in a correct format.当我尝试以下 Dapper 代码时,通过传递 Username:W01, Password=check123 我得到一个错误,解析列 0 时出错 (UserId=W01 - String)'.FormatException: 输入字符串的格式不正确。

`` ``

        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();

`` StoredProcedure is as below. `` 存储过程如下。

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

Please advise.请指教。

Dapper expects SQL and .NET to be the same. Dapper 预计 SQL 和 .NET 是相同的。 The error mentions UserId, code examples show parameter as username (not id).错误提到了 UserId,代码示例将参数显示为用户名(不是 id)。

you say 'when passing: Username:W01' The error shows 'Error parsing column 0 (UserId=W01 - String)'你说'传递时:用户名:W01'错误显示'错误解析列0(UserId = W01 - String)'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM