Insufficient parameters supplied to the command

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

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力