【发布时间】:2011-11-09 12:44:07
【问题描述】:
好的,首先,大家好,这是我的第一篇文章。
现在,我已经创建了一个 SQLCE 数据库,创建了数据上下文和所有映射,并成功地用大量数据填充了数据库。到目前为止一切顺利,现在如果我想检索数据就会遇到问题。
获取数据的代码
var codes = (from c in App.BonusDatabase.tbRawData
select c).ToList();
运行我得到指定的演员是无效的。我猜它不喜欢的地方有一个值,我怎样才能找到这个值?
at System.Data.SqlServerCe.SqlCeDataReader.GetFloat(Int32 ordinal)
at Read_RAW(ObjectMaterializer`1 )
at System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at BAT.Bonus.BonusRun(Int32 Week) in Bonus.cs:line 36
at BAT.Bonus.BonusRun() in Bonus.cs:line 25
at BAT.winMain.worker_DoWork(Object sender, DoWorkEventArgs e) in winMain.xaml.cs:line 91
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
编辑:好吧,作为一个骗子,我将 SQL 创建表查询复制到另一个程序中,并让它计算我有多少次 int、float 等。计数符合预期。然后我用 LINQ 映射重复了这个,它有一个匹配的计数,所以我认为映射没有错。
编辑 2: 我只是将上面的代码修改为只选择 1 个字段而不是像这样的所有内容
var codes = (from c in App.BonusDatabase.tbRawData
select c.CODE).ToList();
这很好用,但如果我随后更改为另一个字段
var codes = (from c in App.BonusDatabase.tbRawData
select c.PPH).ToList();
我得到了错误。那么这是玩的那个吗?如果是这样,在 SQL 数据库和我的映射中都声明为浮点数可能是什么问题
【问题讨论】:
标签: c# .net linq-to-sql exception-handling sql-server-ce