头一次为了完成象征性的作业而使用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(sqlconnectionstringoptions,boolean&isintransaction)+372
system.data.sqlclient.sqlconnection.open()+384
system.data.common.dbdataadapter.quietopen(idbconnectionconnection,connectionstate&originalstate)+44
system.data.common.dbdataadapter.fillfromcommand(objectdata,int32startrecord,int32maxrecords,stringsrctable,idbcommandcommand,commandbehaviorbehavior)+304
system.data.common.dbdataadapter.fill(datasetdataset,int32startrecord,int32maxrecords,stringsrctable,idbcommandcommand,commandbehaviorbehavior)+77
system.data.common.dbdataadapter.fill(datasetdataset,int32startrecord,int32maxrecords,stringsrctable)+40
datagridtest.webform1.page_load(objectsender,eventargse)inc:/inetpub/wwwroot/datagridtest/webform1.aspx.cs:33
system.web.ui.control.onload(eventargse)+67
system.web.ui.control.loadrecursive()+35
system.web.ui.page.processrequestmain()+750
==============================================================================
按照我的出现的exception,我的解决方法如下:
1、在sqlserver创建“电脑名/aspnet”用户。比如我创建hp-2v47vi88m4gb/aspnet
2、在sqlenterprisemanager里打开“安全性”文件夹,右击“登录”,选择“新建登录……”。“常规”选项卡,“名称”填hp-2v47vi88m4gb/aspnet,其他默认;“数据库访问”选项卡,指定访问的数据库,我指定的是northwind数据库,然后给他赋权限:dbo,public就够了。
如果有更好的方法,请不啻指教