《ASP.NET编程宝典(C#)》企业级通用进销存软件中“销售退货查询”页面有问题
发表在ASP.NET图书答疑 2012-03-22
是否精华
版块置顶:
点击页面中的“详细信息”出现错误。该怎么解决。

另外再请教下:为什么系统不能使用中文作为登录名。如果需要使用中文作为登录名,需要怎么解决。

关于页面传回的错误信息如下:



=====================================================================

“/MRErp.StockManager”应用程序中的服务器错误。
--------------------------------------------------------------------------------

序列不包含任何元素 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidOperationException: 序列不包含任何元素

源错误: 


行 115:            TSale resu = new TSale();
行 116:            resu.OprType = OperateType.otNone;
行 117:            resu.Content = dc.SaleContent.Where(itm => itm.ID == id).First();
行 118:
行 119:            List<SaleDetail> tempList = dc.SaleDetail.Where(itm => itm.SaleBillCode == resu.Content.SaleBillCode).ToList();
 

源文件: E:\通用进销存管理系统\MRErp\MRErp.ServiceProvider\Dao\SaleDao.cs    行: 117 

堆栈跟踪: 


[InvalidOperationException: 序列不包含任何元素]
   System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) +812
   System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) +129
   System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +879
   System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute(Expression expression) +106
   System.Linq.Queryable.First(IQueryable`1 source) +267
   MRErp.ServiceProvider.Dao.SaleDao.GetSale(Int32 id) in E:\通用进销存管理系统\MRErp\MRErp.ServiceProvider\Dao\SaleDao.cs:117
   MRErp.ServiceProvider.Service.SaleService.GetSale(Int32 id) in E:\通用进销存管理系统\MRErp\MRErp.ServiceProvider\Service\SaleService.cs:118
   Sale_SaleInput.Page_Load(Object sender, EventArgs e) in e:\通用进销存管理系统\MRErp\MRErp.StockManager\Sale\SaleInput.aspx.cs:98
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +33
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +47
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061

 

分享到:
精彩评论 1
东方_mrkj
学分:0 LV1
2012-03-21
沙发
读者你好:
    请把出错的详细信息发过来。另外,您提到关于无法使用中文登录的问题,这里是因为使用中文可能会出现乱码的现象,可以参考如下方案解决:

asp.net默认的编码是UTF-8
js文件里的编码也是UTF-8

当你要在aspx页面上进行传中文参数时会出现乱码

-request.aspx接收参数页-

response.aspx传送参数页-

例一:a href=request.aspx?str=中国人/a

解决办法一:

1.可以和改webconfig的编码 如:

location path=‘response.aspx‘

system.web

globalization fileEncoding=‘gb2312‘ requestEncoding=‘gb2312‘ responseEncoding=‘gb2312‘ culture=‘zh-CN‘/

/system.web

/location

注意:你也要把request.aspx页面上的编码也改成同样的,虽然中文乱码解决了,但如果你用到了js文件就会出现乱码

//用这以上方法的话不会改变网站的其它页面上的编码

location path=‘request.aspx‘

system.web

globalization fileEncoding=‘gb2312‘ requestEncoding=‘gb2312‘ responseEncoding=‘gb2312‘ culture=‘zh-CN‘/

/system.web

/location

解决办法二:

1.如果你不想动webconfig 你可以在response.aspx.cs“里面对参数进行编码 如:

response.aspx在页面上:

a href=request.aspx?str=%=str%/a

response.cs页面上:

声明一个变量str

public string str=中国人;

str= HttpUtility.UrlEncode(str,System.Text.Encoding.GetEncoding(GB2312));

//这时str已经是编码后的

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照