c# - 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)
)
当我尝试以下 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();
`` 存储过程如下。
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
请指教。
解决方案
Dapper 期望 SQL 和 .NET 是相同的。错误提到了 UserId,代码示例将参数显示为用户名(不是 id)。
你说'传递时:用户名:W01'错误显示'错误解析列0(UserId = W01 - String)'
推荐阅读
- vb.net - 我是 VB (Visual Studio) 的新手,我正在尝试从数据表“ClientInfo”中按升序获取列 (2)“LastName”
- javascript - 数组中的字符串行为异常 - Expo App
- php - PHP SQL 更新查询
- excel - 如何在 Excel VBA 中使用 LIKE 运算符突出显示子字符串
- computational-geometry - 体素化多边形网格
- c# - 如何使用 GeckoFx 浏览器检查网站是否具有有效的 SSL?
- excel - 根据另一列中的条件粘贴到一列
- ios - 一个应用程序可以在 Itunesconnect 中被同一团队 ID 中的另一个应用程序替换吗?
- c# - 如何在 app.js - React JS 中导入 react-document-title?
- python - 为什么 Keras 训练良好但返回错误的预测?