至少一个参数没有被指定值(ADO.NET操作Excel)
经常有朋友问我,在ASP.NET中使用SQL的方式通过Excel模板批量导入Excel表数据到数据库,出现一个难以解释的错误:至少一个参数没有被指定值。他们一开始均以为是方法中的参数写错了,写少了或者传递的参数值有问题,其实这个问题是出现在读取Excel数据的时候,而不是在导入的时候。
问题出在Excel的模板,一般使用SQL语句的方式批量导入数据时,大多数情况下都是用Select [列名1],[列名2],…… from [Excel表名] 的形式获取Excel表数据后,再转换为SQL语句再导入到数据库中,当这条SQL语句中Select的列名在Excel模板中不存在的时候,就会出现“至少一个参数没有被指定值。”。
解决办法:
1、检查Select语句中读取的所有列名在Excel表头中是否都存在;
2、在Excel模板中增加遗漏的列名或者在Select语句中清除多余的列名。