我的代码:
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.IEnumerable'到'int'
我正在使用C#,WebMatrix和SQL Server。 WebMatrix中。如果我尝试运行ExecuteScalar而不是Query,我会得到
'WebMatrix.Data.Database'不包含。的定义 '的ExecuteScalar'
有谁知道我可以做些什么来修复我的代码?
答案 0 :(得分:1)
听起来你想要Database.QueryValue
。
// No need to declare it beforehand...
int key = (int) db.QueryValue(...);
与上一个问题一样,您绝对应该 将查询参数值嵌入到SQL中。
Database.QueryValue
记录为:
执行一个SQL查询,返回单个标量值作为结果。
......听起来对我来说完全正确。值得浏览文档 - 它们不是很详细,但它至少会告诉你什么是可用的。
答案 1 :(得分:0)
您的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();
应该足够了。