我是ASP.NET的新手,对语法有一些疑问...... 我有几个SQL DB表,其中包含有关ride_reservations,vehicles和admin选项的信息。这是一个asp.net程序功能,它将选择下一个最佳的车辆预订发送到某辆车。
我试图通过在数据库中填充C#ArrayList来开始(并弄清楚语法)两个有效日期之一,按照最早的调用排序。
提前致谢!
**编辑:还另一个问题是,“TIMEOFCALL”分贝列是一个“DATETIME2(7)”类型和ValidDate1 / 2分贝colums是类型“日期” ...我可以比较这些
使用一些语法帮助:下面:我更接近但是我收到了以下运行时错误:
序列不包含元素
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
Exception Details: System.InvalidOperationException: Sequence contains no elements
Source Error:
Line 27: protected void getAllRides()
Line 28: {
Line 29: using (RamRideOpsEntities myEntities = new RamRideOpsEntities())
Line 30: {
Line 31: var adminOptions = (from a in myEntities.AdminOptions
Source File: D:\DOCUMENTS\RamRide\RamRideOps_PL\RamRideOps\RamRideOps\Ops\DispatchCar.aspx.cs Line: 29
Stack Trace:
[InvalidOperationException: Sequence contains no elements]
System.Linq.Enumerable.First(IEnumerable`1 source) +336
System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__0(IEnumerable`1 sequence) +41
System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable`1 query, Expression queryRoot) +59
System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute(Expression expression) +150
System.Linq.Queryable.First(IQueryable`1 source) +265
RamRideOps.DispatchCar.getNextRide(Int32 carNum) in D:\DOCUMENTS\RamRide\RamRideOps_PL\RamRideOps\RamRideOps\Ops\DispatchCar.aspx.cs:29
RamRideOps.DispatchCar.Page_Load(Object sender, EventArgs e) in D:\DOCUMENTS\RamRide\RamRideOps_PL\RamRideOps\RamRideOps\Ops\DispatchCar.aspx.cs:24
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272
答案 0 :(得分:1)
validDate1和validDate2都是Queryable AdminOptions
你可能想要这个var adminOptions = (from a in myEntities.AdminOptions
select new { a.ValidDate1, a.ValidDate2 }).First();
假设表格包含字段ValidDate1&amp; ValidDate2(不是带键和值的propertyBag样式)
现在你可以像这样获得你的游乐设施
var rides = (from r in myEntities.Rides
where (r.TimeOfCall == adminOptions.ValidDate1 ||
r.TimeOfCall == adminOptions.ValidDate2)
orderby TimeOfCall descending
select r).ToList();
ToList()将避免在结束时进行循环以构建数组。
这应该可以修复你的语法。
编辑
我错过了将timeOfCall中的r放在orderby行
中var rides = (from r in myEntities.Rides
where (r.TimeOfCall == adminOptions.ValidDate1 ||
r.TimeOfCall == adminOptions.ValidDate2)
orderby r.TimeOfCall descending
select r).ToList();
我认为你真的需要看一下这个地方的一些教程,或者买一本关于这个主题的好书。一个下午的阅读可能会让你感到沮丧。