回 帖 发 新 帖 刷新版面

主题:[讨论]怪事

我写了一个ASP程序。主要功能是用datagrid浏览数据库中的数据:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace asp3
{
    /// <summary>
    /// WebForm3 的摘要说明。
    /// </summary>
    public class WebForm3 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.DataGrid Mylist;
        protected System.Data.SqlClient.SqlConnection sqlConnection1;
        protected System.Web.UI.WebControls.Button Button1;
    
        private void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
            //
            InitializeComponent();
            base.OnInit(e);
        }
        
        /// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {    
            this.sqlConnection1 = new System.Data.SqlClient.SqlConnection();
            this.Button1.Click += new System.EventHandler(this.Button1_Click);
            //
            // sqlConnection1
            //
            this.sqlConnection1.ConnectionString = "data source=WJS81;initial catalog=pubs;integrated security=SSPI;persist security " +
                "info=False;workstation id=WJS81;packet size=4096";
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion

        private void Button1_Click(object sender, System.EventArgs e)
        {
         SqlConnection MyConnection=new SqlConnection("data source=WJS81;initial catalog=pubs;integrated security=SSPI;persist security info=False;workstation id=WJS81;packet size=4096");
    
    SqlDataAdapter MyCommand=new SqlDataAdapter("select * from titles",MyConnection);
    
DataSet ds=new DataSet();
            MyCommand.Fill(ds,"Titles");
            Mylist.DataSource=ds.Tables["Titles"].DefaultView;
            Mylist.DataBind();
        }
    }
}

但是执行后有这样的错误:
用户 'WJS81\ASPNET' 登录失败。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 用户 'WJS81\ASPNET' 登录失败。

源错误:


行 61:     
行 62: DataSet ds=new DataSet();
行 63:             MyCommand.Fill(ds,"Titles");
行 64:             Mylist.DataSource=ds.Tables["Titles"].DefaultView;
行 65:             Mylist.DataBind();


源文件: e:\asp学习\net\asp3\webform3.aspx.cs    行: 63

堆栈跟踪:


[SqlException: 用户 'WJS81\ASPNET' 登录失败。]
   System.Data.SqlClient.SqlConnection.Open() +761
   System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState) +44
   System.Data.Common.DbDataAdapter.Fill(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +98
   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, String srcTable) +36
   asp3.WebForm3.Button1_Click(Object sender, EventArgs e) in e:\asp学习\net\asp3\webform3.aspx.cs:63
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain() +1263

这个错误又不能是连接字符串的问题。因为这个连接字符串是我用的sql控件创建的一个链接。测试都成功了。谁能帮我一下

回复列表 (共3个回复)

沙发

SqlConnection MyConnection=new SqlConnection("data source=WJS81;initial catalog=pubs;integrated security=SSPI;persist security info=False;workstation id=WJS81;packet size=4096");
是这句有问题
我连接时用的是
SqlConnectioin conn=new SqlConnection("server=wjs81;database=pubs;uid=sa;password=422152")
这样就可以了,
其它代码没有问题

板凳

我试了试也是不行。因为我SQL用的是windows nt集成。不是sa用户。如果是用集成这个语句怎么写呀

3 楼

没OPEN吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册