查询带有getdate()列的表时出现格式错误
本文关键字:错误 格式 getdate 查询 | 更新日期: 2023-09-27 17:52:55
当有人在我的网站上搜索时,在tbl_search
表中创建了一条记录。数据库通过将getdate()
作为数据绑定来决定时间戳是什么。
我正在尝试从这个表中获取所有的数据:
@{
WebMartix.Data.Database DB = WebMatrix.Data.Database.Open(MyConString)
var data = DB.Query("SELECT * FROM tbl_search"); // <<<<<< error occurrs here <<<<<<
foreach (var d in data){
@d.phrase
}
}
错误为:Input string was not in a correct format.
但是,VS中的帮助窗口有一个故障排除提示:
将字符串转换为DateTime时,在将每个变量放入DateTime对象之前,先解析字符串以获取日期。
- 如果我将表更改为没有getdate()数据绑定的表,则可以工作。
- 它的工作原理,当我运行相同的查询SQL管理工作室。
- 我把查询在一个存储过程中,它有相同的结果:在SQL mgmt工作室工作,但不是在网站上。
我做了大量的研究,但为了简洁起见,我决定不展示它,特别是因为我在写问题的最后偶然发现了解决方案
查询中的星号(*)导致错误。
我用phrase, timestamp
代替它,它工作了:
@{
WebMartix.Data.Database DB = WebMatrix.Data.Database.Open(MyConString)
var data = DB.Query("SELECT phrase, timestamp FROM tbl_search");
foreach (var d in data){
@d.phrase
}
}
我研究这个问题已经有一段时间了,直到我通过反复试验找到了解决方案。我在网上找不到关于这个WebMatrix的文档…(错误)也许吗?所以我决定张贴,希望下一个人可以找到它更容易,也许有人更专业的可以解释为什么星号不工作在查询中,但只有当表有一个getdate()生成的列