Dapper Не удалось разобрать столбец String - PullRequest
0 голосов
/ 28 октября 2019

У меня есть следующая таблица

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

Когда я пытаюсь использовать следующий Dapper-код, передавая Имя пользователя: W01, Пароль = 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, как показано ниже.

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

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 04 ноября 2019

Даппер ожидает, что SQL и .NET будут одинаковыми. Ошибка упоминает UserId, примеры кода показывают параметр как имя пользователя (не идентификатор).

вы говорите «при передаче: Имя пользователя: W01» Ошибка показывает «Ошибка анализа столбца 0 (UserId = W01 - String)»

...