无法隐式转换类型';System.Collections.Generic.IEnumerable<;动态>
本文关键字:Generic Collections IEnumerable gt 动态 lt System 转换 类型 | 更新日期: 2023-09-27 18:26:47
我的代码:
int key = 0;
//get primary key of inserted row
key = db.Query("SELECT max(event_id) FROM event where title=" + cevent.title + "AND description=" + cevent.description + "AND event_start=" + cevent.start + "AND event_end=" + cevent.end);
错误消息:
无法隐式转换类型"System.Collections.Generic.IENumberable"到"int"
我使用的是C#、WebMatrix和SQL Server。WebMatrix。如果我尝试运行ExecuteScalar而不是Query,我会得到
"WebMatrix.Data.Database"不包含的定义"ExecuteScalar"
有人知道我能做些什么来修复我的代码吗?
听起来您需要Database.QueryValue
。
// No need to declare it beforehand...
int key = (int) db.QueryValue(...);
和您之前的问题一样,您绝对应该而不是在SQL中嵌入查询参数值。
Database.QueryValue
记录为:
执行返回单个标量值作为结果的SQL查询。
这听起来很对。浏览这些文档是值得的——它们不是很详细,但它至少会向你展示可用的内容。
您的key
是整数,您不能将整数System.Collections.Generic.IEnumerable
强制转换为消息请求。
如果你确信只有一个结果,那么写这样的东西:
key = (int)db.Query("SELECT max(event_id) FROM event where title=" +
cevent.title + "AND description=" +
cevent.description + "AND event_start=" +
cevent.start + "AND event_end=" + cevent.end).
FirstOrDefault();
对你来说应该足够了。