各位大虾,帮忙解决一个问题,谢谢了!(用的是sql server 2008  vs2008  ) 
用户 'sa' 登录失败。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 用户 'sa' 登录失败。 源错误: 
行 67:        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon); 
行 68:        DataSet myds = new DataSet(); 
行 69:        sqlcon.Open(); 
行 70:        myda.Fill(myds, "tb_homePerson"); 
行 71:        GridView1.DataSource = myds; 
源文件: d:\Downloads\WebSite1\diarylist.aspx.cs    行: 69 
堆栈跟踪: 
[SqlException (0x80131904): 用户 'sa' 登录失败。] 
  System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4846887 
  System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194 
  System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392 
  System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +35 
  System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +144 
  System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +342 
  System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +221 
  System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +189 
  System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +185 
  System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +31 
  System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +433 
  System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66 
  System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +499 
  System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +65 
  System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117 
  System.Data.SqlClient.SqlConnection.Open() +122 
  diarylist.bind() in d:\Downloads\WebSite1\diarylist.aspx.cs:69 
  diarylist.Page_Load(Object sender, EventArgs e) in d:\Downloads\WebSite1\diarylist.aspx.cs:24 
  System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14 
  System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35 
  System.Web.UI.Control.OnLoad(EventArgs e) +99 
  System.Web.UI.Control.LoadRecursive() +50 
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627 
源代码如下: using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
using System.Data.SqlClient;//引入命名空间 public partial class diarylist : System.Web.UI.Page 

    SqlConnection sqlcon; 
    SqlCommand sqlcom; 
    string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd="; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
        if (!IsPostBack) 
        { 
            bind(); 
        } 
    }     protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
        GridView1.EditIndex = e.NewEditIndex; 
        bind(); 
    } 
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 
    { 
        string sqlstr = "delete from tb_homePerson where id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'"; 
        sqlcon = new SqlConnection(strCon); 
        sqlcom = new SqlCommand(sqlstr, sqlcon); 
        sqlcon.Open(); 
        sqlcom.ExecuteNonQuery(); 
        sqlcon.Close(); 
        bind(); 
    } 
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
    { 
        sqlcon = new SqlConnection(strCon); 
        string sqlstr = "update tb_homePerson set name='" 
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',sex='" 
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',nPlace='" 
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where id='" 
            + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'"; 
        sqlcom = new SqlCommand(sqlstr, sqlcon); 
        sqlcon.Open(); 
        sqlcom.ExecuteNonQuery(); 
        sqlcon.Close(); 
        GridView1.EditIndex = -1; 
        bind(); 
    } 
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
    { 
        GridView1.EditIndex = -1; 
        bind(); 
    } 
    public void bind() 
    { 
        string sqlstr = "select * from tb_homePerson"; 
        sqlcon = new SqlConnection(strCon); 
        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon); 
        DataSet myds = new DataSet(); 
        sqlcon.Open(); 
        myda.Fill(myds, "tb_homePerson"); 
        GridView1.DataSource = myds; 
        GridView1.DataKeyNames = new string[] { "id" }; 
        GridView1.DataBind(); 
        sqlcon.Close(); 
    } 
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
        this.GridView1.PageIndex = e.NewPageIndex; 
        this.bind(); 
    }     protected void Button1_Click(object sender, EventArgs e) 
    {     } 
}

解决方案 »

  1.   

    string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd="; 
    数据库名字是否正确?
    密码是否正确?
      

  2.   

    sql server 2008我还没有用过请检查一下
    1、sql server 2008是否允许远程访问
    2、检查用户名密码是否正确
      

  3.   

    XML也能做数据库使用吗??楼主!给我份源码!谢谢!参考下!
      

  4.   

    string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd="; 给Uid=sa加上双引号:Uid="sa" Pwd="******" 这样试下看看!
      

  5.   

    1,检查数据库连接字符串是否正确2,确定数据库中sa用户是否开放(我记得好像MSSQL2005里默认sa是禁用的...)
      

  6.   

    string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd=";
    感觉你写的不对 如果是sql server数据库的话 是不是Database=diary.xml 写的不对 换个别的数据库试试
      

  7.   

    数据库中用户不存在或密码不正确,服务器是否开启 
    在安全性里看看用户 
    打开SQL Server Management Studio Express, 
    右键点击服务器,选择Properties(属性),在弹出窗口中点击Security(安全)切换到安全面板, 
    将server authentication服务器认证从windows authentication mode(windows用户认证模式) 
    修改为Sql Server and Windows Authentication mode(Sql server和windows认证模式),ok。 
    打开security(安全性) -- logins(登录名) ,右键选中sa,选择properties(属性),点击Status(状态)切换到状态面板,将Login(登录)设置为Enabled(启用)。
     
    编辑注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer 
    改 LoginMode 为 2 
      

  8.   

    设置sql验证方式,相关服务是否已经开启
    楼上的方法试下
      

  9.   

    string strCon = "Data Source=。;Database=diary.xml;Uid=sa;Pwd="; 
    Data Source=.;这样只对sql2000有效
    不能这样写,要写sql2008的服务器名字
    stringstrCon=@"Data Source=正在运行的服务器名称;Database=diary;trusted_connection=yes"; 
      

  10.   

    string strCon = "Data Source=.;Database=diary.xml;Integrated Security=True"; 
    这样试试。
      

  11.   

    也不行啊。。数据库也打不开了。。显示如下:
    无法打开登录所请求的数据库 "diary.xml"。登录失败。
    用户 '20090504-1337\Administrator' 登录失败。未修改之前显示如下:
    用户 'sa' 登录失败。
      

  12.   

    string strCon = "Data Source=.\SQLEXPRESS;Database=diary.xml;Uid=sa;Pwd="; 
    这样试试
      

  13.   

    string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd=";
    楼主用的是什么数据库呀?是sql吗?
    看报错是sql的。
    楼主在这儿用了服务器,又用数据库,楼主还是研究下,用的什么数据库吧,
    也好有针对性地操作。
      

  14.   

     string strCon = "Database=diary.xml;Uid=sa;Pwd="; Data Source=“” 你给一个数据库实例试一下。
    .//sql2000或者.//sql2005
      

  15.   

    读XML数据库,不用这样读的,这个跟sql没关系