“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------索引超出了数组界限。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。源错误:
行 66: OrderDataContext linq = LinqBase.GetNewInt();
行 67: var arr = from c in linq.S_Goods orderby c.GoodsID descending select c;
行 68: return arr.ToList<S_Goods>();
行 69: }
行 70: /// <summary>
源文件: D:\ShopSourseNew\Shop.DB\Models\GoodsModel.cs 行: 68 堆栈跟踪:
[IndexOutOfRangeException: 索引超出了数组界限。]
System.Data.SqlClient.TdsParserStateObject.ProcessHeader() +5057703
System.Data.SqlClient.TdsParserStateObject.CleanWire() +137
System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command) +5049260
System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command) +23
System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async) +144
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +87
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12
System.Data.Common.DbCommand.ExecuteReader() +12
System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) +1266
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) +113
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +344
System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +34
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +315
System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
Shop.DB.Models.GoodsModel.GetList() in D:\ShopSourseNew\Shop.DB\Models\GoodsModel.cs:68
ShopMvc3.Controllers.HomeController.Index() in D:\ShopSourseNew\ShopMvc3\Controllers\HomeController.cs:19
lambda_method(Closure , ControllerBase , Object[] ) +62
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +205
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +55
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +191
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343
System.Web.Mvc.Controller.ExecuteCore() +116
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50
System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8897857
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.1
--------------------------------------------------------------------------------索引超出了数组界限。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。源错误:
行 66: OrderDataContext linq = LinqBase.GetNewInt();
行 67: var arr = from c in linq.S_Goods orderby c.GoodsID descending select c;
行 68: return arr.ToList<S_Goods>();
行 69: }
行 70: /// <summary>
源文件: D:\ShopSourseNew\Shop.DB\Models\GoodsModel.cs 行: 68 堆栈跟踪:
[IndexOutOfRangeException: 索引超出了数组界限。]
System.Data.SqlClient.TdsParserStateObject.ProcessHeader() +5057703
System.Data.SqlClient.TdsParserStateObject.CleanWire() +137
System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command) +5049260
System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command) +23
System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async) +144
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +87
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12
System.Data.Common.DbCommand.ExecuteReader() +12
System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) +1266
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) +113
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +344
System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +34
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +315
System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
Shop.DB.Models.GoodsModel.GetList() in D:\ShopSourseNew\Shop.DB\Models\GoodsModel.cs:68
ShopMvc3.Controllers.HomeController.Index() in D:\ShopSourseNew\ShopMvc3\Controllers\HomeController.cs:19
lambda_method(Closure , ControllerBase , Object[] ) +62
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +205
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +55
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +191
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343
System.Web.Mvc.Controller.ExecuteCore() +116
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50
System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8897857
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.1
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using Shop.DB;namespace Shop.DB.Models
{
public class GoodsModel
{
/// <summary>
/// 获得商品实体
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static S_Goods GetModel(int id)
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_Goods where c.GoodsID == id select c;
try
{
S_Goods dto = arr.First<S_Goods>();
linq.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, dto);
return dto;
}
catch
{
return null;
} }
/// <summary>
/// 获得所有分类
/// </summary>
/// <param name="parentID"></param>
/// <returns></returns>
public static List<S_Class> GetClass(int parentID)
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_Class where c.ParentID == parentID select c;
return arr.ToList<S_Class>();
} /// <summary>
/// 获得图片列表
/// </summary>
/// <param name="goodsID"></param>
/// <returns></returns>
public static List<S_Pic> GetPicList(int goodsID)
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_Pic where c.GoodsID == goodsID select c;
return arr.ToList<S_Pic>();
}
/// <summary>
/// 获得所有商品
/// </summary>
/// <returns></returns>
public static List<S_Goods> GetList()
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_Goods orderby c.GoodsID descending select c;
return arr.ToList<S_Goods>();
}
/// <summary>
/// 获得商品
/// </summary>
/// <returns></returns>
public static List<S_Goods> GetList(int[] arrGoodsID )
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_Goods where arrGoodsID.Contains(c.GoodsID) orderby c.GoodsID descending select c;
return arr.ToList<S_Goods>();
}
/// <summary>
/// 获得所有商品
/// </summary>
/// <returns></returns>
public static List<S_Goods> GetList(int classID, int actionID, string sourse, decimal price_min, decimal price_max)
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_Goods where (classID == -1 || c.ClassID1 == classID) && (actionID == -1 || c.actionID == actionID) && (string.IsNullOrEmpty(sourse) || c.Sourse == sourse) && (c.MemberPrice > price_min && c.MemberPrice < price_max) orderby c.GoodsID descending select c;
return arr.ToList<S_Goods>();
}
/// <summary>
/// 获得所有分类
/// </summary>
/// <returns></returns>
public static List<S_Class> GetGoodsClass()
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_Class select c;
return arr.ToList<S_Class>();
}
/// <summary>
/// 尺码*库存转换成集合数据
/// </summary>
/// <param name="sizeText"></param>
/// <returns></returns>
public static SortedList<string, string> BildSizeList(string sizeText)
{
OrderDataContext linq = LinqBase.GetNewInt();
SortedList<string, string> newSizeLists = new SortedList<string, string>();
foreach (DictionaryEntry de in BindCtrol.SizeDecode(sizeText, true))
{
if (Convert.ToInt32(de.Value) != 0)
{
newSizeLists.Add(de.Key.ToString().Trim(), de.Value.ToString());
}
}
return newSizeLists; }
/// <summary>
/// 说的商品明细列表
/// </summary>
/// <param name="lsCarDetails"></param>
/// <returns></returns>
public static List<S_OrderDetail> GetGoodsDetails(List<int> lsCarDetails)
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_OrderDetail where lsCarDetails.Contains(c.GoodsID) select c;
return arr.ToList<S_OrderDetail>();
}
/// <summary>
/// 添加喜爱的商品
/// </summary>
/// <param name="userID"></param>
/// <param name="goodsID"></param>
public static void AddFavaoriteGoods(int userID, int goodsID)
{
OrderDataContext linq = LinqBase.GetInt();
linq.S_Favorite.InsertOnSubmit(new S_Favorite { UserID = userID, GoodsID = goodsID });
linq.SubmitChanges();
}
/// <summary>
/// 添加喜爱的商品
/// </summary>
/// <param name="userID"></param>
/// <param name="goodsID"></param>
public static void DelFavaoriteGoods(int userID, int goodsID)
{
try
{
OrderDataContext linq = LinqBase.GetInt();
var arr = from c in linq.S_Favorite where c.GoodsID == goodsID && c.UserID == userID select c;
linq.S_Favorite.DeleteOnSubmit(arr.First<S_Favorite>());
linq.SubmitChanges();
}
catch
{
LinqBase.CancelDeleteAndInsert();
throw;
} }
/// <summary>
/// 喜爱的商品列表
/// </summary>
/// <param name="userID"></param>
/// <returns></returns>
public static List<S_Goods> GetFavoriteGoods(int userID)
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_Favorite from d in linq.S_Goods where c.GoodsID == d.GoodsID && c.UserID == userID select d;
return arr.ToList<S_Goods>();
}
/// <summary>
/// 添加商品评论
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
public static int AddGoodsComment(S_Comment dto)
{
OrderDataContext linq = LinqBase.GetInt();
linq.S_Comment.InsertOnSubmit(dto);
linq.SubmitChanges();
return dto.CommentID;
}
/// <summary>
/// 添加商品评论
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
public static bool DelGoodsComment(int commentID)
{
try
{
OrderDataContext linq = LinqBase.GetInt();
var arr = from c in linq.S_Comment where c.CommentID == commentID select c;
linq.S_Comment.DeleteOnSubmit(arr.First<S_Comment>());
linq.SubmitChanges();
return true;
}
catch
{
LinqBase.CancelDeleteAndInsert();
throw;
} }
/// <summary>
/// 商品评论列表
/// </summary>
/// <param name="goodsID"></param>
/// <returns></returns>
public static List<S_Comment> ListGoodsComment(int userID, int goodsID)
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_Comment where (userID == -1 || c.UserID == userID) && (goodsID == -1 || c.GoodsID == goodsID) select c;
return arr.ToList<S_Comment>();
}
/// <summary>
/// 商品评论列表
/// </summary>
/// <param name="goodsID"></param>
/// <returns></returns>
public static List<S_Comment> ListGoodsComment(int userID, int goodsID, DateTime btime, DateTime etime)
{
OrderDataContext linq = LinqBase.GetNewInt();
var arr = from c in linq.S_Comment where c.CommentDate >= btime && c.CommentDate < etime && (userID == -1 || c.UserID == userID) && (goodsID == -1 || c.GoodsID == goodsID) select c;
return arr.ToList<S_Comment>();
}
}
}