日期:2008-09-14  浏览次数:20360 次

头一次为了完成象征性的作业而使用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就够了。
如果有更好的方法,请不啻指教