用户登录失败--在线等

RoseMary1124 2010-02-25 10:43:28
各位大虾,帮忙解决一个问题,谢谢了!(用的是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)
{

}
}
...全文
579 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Adechen 2010-02-25
  • 打赏
  • 举报
回复
设置sql验证方式,相关服务是否已经开启
楼上的方法试下
wuyq11 2010-02-25
  • 打赏
  • 举报
回复
数据库中用户不存在或密码不正确,服务器是否开启
在安全性里看看用户
打开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
jenny0810 2010-02-25
  • 打赏
  • 举报
回复
string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd=";
感觉你写的不对 如果是sql server数据库的话 是不是Database=diary.xml 写的不对 换个别的数据库试试
teita731 2010-02-25
  • 打赏
  • 举报
回复
1,检查数据库连接字符串是否正确

2,确定数据库中sa用户是否开放(我记得好像MSSQL2005里默认sa是禁用的...)
feelnowt 2010-02-25
  • 打赏
  • 举报
回复
数据库链接字符串错误。
lihuan19870723 2010-02-25
  • 打赏
  • 举报
回复
string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd=";

给Uid=sa加上双引号:Uid="sa" Pwd="******" 这样试下看看!
mengfanzongfox 2010-02-25
  • 打赏
  • 举报
回复
XML也能做数据库使用吗??楼主!给我份源码!谢谢!参考下!
我是谁 2010-02-25
  • 打赏
  • 举报
回复
sql server 2008我还没有用过请检查一下
1、sql server 2008是否允许远程访问
2、检查用户名密码是否正确
小猫阿尤 2010-02-25
  • 打赏
  • 举报
回复
数据库链接字符串有问题 或者是数据库配置不正确
hj88624 2010-02-25
  • 打赏
  • 举报
回复
string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd=";
数据库名字是否正确?
密码是否正确?
RoseMary1124 2010-02-25
  • 打赏
  • 举报
回复
引用 23 楼 gelinbod 的回复:
读XML数据库,不用这样读的,这个跟sql没关系

那应该怎么读呢?请高手赐教啊!
gelinbod 2010-02-25
  • 打赏
  • 举报
回复
读XML数据库,不用这样读的,这个跟sql没关系
RoseMary1124 2010-02-25
  • 打赏
  • 举报
回复
引用 20 楼 cfesc9 的回复:
string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd=";
楼主用的是什么数据库呀?是sql吗?
看报错是sql的。
楼主在这儿用了服务器,又用数据库,楼主还是研究下,用的什么数据库吧,
也好有针对性地操作。


sql server 2008
may_beyond 2010-02-25
  • 打赏
  • 举报
回复
string strCon = "Database=diary.xml;Uid=sa;Pwd=";

Data Source=“” 你给一个数据库实例试一下。
.//sql2000或者.//sql2005
cfesc9 2010-02-25
  • 打赏
  • 举报
回复
string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd=";
楼主用的是什么数据库呀?是sql吗?
看报错是sql的。
楼主在这儿用了服务器,又用数据库,楼主还是研究下,用的什么数据库吧,
也好有针对性地操作。
  • 打赏
  • 举报
回复
引用 5 楼 lihuan19870723 的回复:
string strCon = "Data Source=.;Database=diary.xml;Uid=sa;Pwd=";

给Uid=sa加上双引号:Uid="sa" Pwd="******" 这样试下看看!


没那个必要
先看看你的登录账号密码是否错误 在检查你的数据库名称
RoseMary1124 2010-02-25
  • 打赏
  • 举报
回复
引用 17 楼 huangwenquan123 的回复:
string strCon = "Data Source=.\SQLEXPRESS;Database=diary.xml;Uid=sa;Pwd=";
这样试试

无法识别转义序列啊
huangwenquan123 2010-02-25
  • 打赏
  • 举报
回复
string strCon = "Data Source=.\SQLEXPRESS;Database=diary.xml;Uid=sa;Pwd=";
这样试试
RoseMary1124 2010-02-25
  • 打赏
  • 举报
回复
引用 14 楼 blackmeit 的回复:
string strCon = "Data Source=.;Database=diary.xml;Integrated Security=True";
这样试试。

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

未修改之前显示如下:
用户 'sa' 登录失败。
RoseMary1124 2010-02-25
  • 打赏
  • 举报
回复
引用 12 楼 book_xuanxiang008 的回复:
string strCon = "Data Source=。;Database=diary.xml;Uid=sa;Pwd=";
Data Source=.;这样只对sql2000有效
不能这样写,要写sql2008的服务器名字
stringstrCon=@"Data Source=正在运行的服务器名称;Database=diary;trusted_connection=yes";

还是不行啊。。改掉的话,数据库也无法打开了。
加载更多回复(4)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧