头一次为了完成象征性的作业而使用asp.net,第一次使用asp.net啊,汗。所以马上就碰到了问题,我现在把这个问题写出来,对于开发过asp.net的人,这个问题应该不成为问题吧,我也只是针对刚刚接触asp.net的人。昨晚在尝试datagrid时,出现如下错误:
“/datagridtest”应用程序中的服务器错误。
——————————————————————————–
用户 ’hp-2v47vi88m4gb\aspnet’ 登录失败。
说明: 执行当前 web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: system.data.sqlclient.sqlexception: 用户 ’hp-2v47vi88m4gb\aspnet’ 登录失败。
源错误:
行 31: if(!this.ispostback)
行 32: {
行 33: sqldataadapter1.fill(dataset11,0,10,”products”);
行 34: this.databind();
行 35: }
源文件: c:\inetpub\wwwroot\datagridtest\webform1.aspx.cs 行: 33
堆栈跟踪:
[sqlexception: 用户 ’hp-2v47vi88m4gb\aspnet’ 登录失败。]
system.data.sqlclient.connectionpool.getconnection(boolean& isintransaction) +474
system.data.sqlclient.sqlconnectionpoolmanager.getpooledconnection(sqlconnectionstring options, boolean& isintransaction) +372
system.data.sqlclient.sqlconnection.open() +384
system.data.common.dbdataadapter.quietopen(idbconnection connection, connectionstate& originalstate) +44
system.data.common.dbdataadapter.fillfromcommand(object data, int32 startrecord, int32 maxrecords, string srctable, idbcommand command, commandbehavior behavior) +304
system.data.common.dbdataadapter.fill(dataset dataset, int32 startrecord, int32 maxrecords, string srctable, idbcommand command, commandbehavior behavior) +77
system.data.common.dbdataadapter.fill(dataset dataset, int32 startrecord, int32 maxrecords, string srctable) +40
datagridtest.webform1.page_load(object sender, eventargs e) in c:\inetpub\wwwroot\datagridtest\webform1.aspx.cs:33
system.web.ui.control.onload(eventargs e) +67
system.web.ui.control.loadrecursive() +35
system.web.ui.page.processrequestmain() +750
==============================================================================
按照我的出现的exception,我的解决方法如下:
1、在sql server创建 “电脑名\aspnet”用户。比如我创建hp-2v47vi88m4gb\aspnet
2、在sql enterprise manager里打开“安全性”文件夹,右击“登录”,选择“新建登录……”。“常规”选项卡,“名称”填hp-2v47vi88m4gb\aspnet,其他默认;“数据库访问”选项卡,指定访问的数据库,我指定的是northwind数据库,然后给他赋权限:dbo,public就够了。
如果有更好的方法,请不啻指教