2022-09-26 乐帮网
c# dapper
使用Dapper数据框架对SQLite数据库进行读写时遇到错误:Insufficient parameters supplied to the command,这个错误在网上查了好多,可以按照以下原因排除。
1)首先检查执行SQL中的参数是否和提供的参数个数对应,代码如下:
using (SQLiteConnection conn = new SQLiteConnection(_connectionStr))
{
string sql = @"select id, kskm, kchp from vehicle Where id=@id and name=@name;";
conn.Open();
return conn.Query<VehicleDbModel>(sql, new { id = id }).FirstOrDefault();
}
上面参数就少了一个name,同理如果我们在参数里使用的是Class,则要保证属性和参数的个数要对应,属性可以多于参数,并且不区分大小写。
2)再次就是比较不容易发现的一个原因,代码如下:
public class Args1
{
public int Id;
public int Name;
}
using (SQLiteConnection conn = new SQLiteConnection(_connectionStr))
{
string sql = @"select id, kskm, kchp from vehicle Where id=@id and name=@name;";
conn.Open();
return conn.Query<VehicleDbModel>(sql, new Args1 { id = id,name="name" }).FirstOrDefault();
}
以上代码是有问题的,就会报错如下:Insufficient parameters supplied to the command。
解决办法如下:修改Args1类如下:
public class Args1
{
public int Id {get;set;}
public int Name {get;set;}
}
最后一切正常。根本不是网传参数名起过6个字符的问题。
关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力