程序运行到“cn.open();” 就报错了

songxq134 2008-07-04 05:09:15
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.Configuration;
using System.Data.SqlClient;


namespace TMS
{

public class _Default : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox tbx_uid;
protected System.Web.UI.WebControls.TextBox tbx_upassword;
protected System.Web.UI.WebControls.Button btn_login;
protected System.Web.UI.WebControls.Label lbl_message;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
private void btn_login_Click(object sender, System.EventArgs e)
{

string strconn= ConfigurationSettings.AppSettings["dsn"];

SqlConnection cn= new SqlConnection (strconn);

cn.Open ();

string mysql= "select * from Users where Uid='"+tbx_uid.Text +"' and UPassword='"+tbx_upassword.Text +"'";

SqlCommand cm=new SqlCommand (mysql,cn);

SqlDataReader dr=cm.ExecuteReader ();
if(dr.Read ())
{
lbl_message.Text= "";

Session["uid"]=dr["uid"].ToString ();
Session["upower"]=dr["upower"].ToString ();
lbl_message.Text="欢迎您!"+Session["uid"];
if(Session["upower"].ToString ()=="1")
{
Response.Redirect ("contractcount.aspx");
}
else if(Session["upower"].ToString ()=="2")
{
Response.Redirect ("contractlist.aspx");
}
}
else
{
lbl_message.Text ="对不起,您的用户名/密码不正确,请重新输入";
}
//关闭连接
cn.Close();





web.config代码:
<appSettings>
<add key="dsn" value="persist security info=False;Integrated Security=SSPI;server=localhost;Trusted_Connection=true;DATABASE=TMS"/>
</appSettings>



<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>


...全文
337 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
songxq134 2008-07-04
  • 打赏
  • 举报
回复
感谢3楼 装了.NET Framework 1.1 SP1补丁以后,又出现了 无法打开登录 'Store1' 中请求的数据库。登录失败。用户 '【主机名】\ASPNET' 登录失败。


解决如下:
执行下列步骤,以关闭 Internet 服务管理器中的“匿名访问”: 启动“Internet 信息服务”工具。可以在控制面板中的管理工具下运行该工具。 展开服务器的节点。 右击“默认 Web 站点”节点,并从快捷键菜单中选择“属性”。 单击“目录安全性”选项卡。 单击“匿名访问和验证控制”节中的“编辑”按钮。 清除“匿名访问”复选框。 确保已经选定了“集成 Windows 身份验证”复选框。 在解决方案资源管理器中,双击 Visual Studio 项目中的 Web.config 文件以显示 XML 代码,并做如下更改: 将下面的行: <authentication mode="None" /> 更改为: <authentication mode="Windows" /> 在标记 <System.Web> 后插入下面的行: <identity impersonate="true" />





zzyhuian06142 2008-07-04
  • 打赏
  • 举报
回复
value="persist security info=False;Integrated Security=SSPI;server=localhost;Trusted_Connection=true;DATABASE=TMS"
改成
value="persist security info=False;Integrated Security=SSPI;server=(local);Trusted_Connection=true;DATABASE=TMS"试试
songxq134 2008-07-04
  • 打赏
  • 举报
回复
按照4楼的方法试过了,问题和没改动前 一样
czk598478 2008-07-04
  • 打赏
  • 举报
回复
关注!
帮顶!
学习!
改进!
再来!
gxj760998 2008-07-04
  • 打赏
  • 举报
回复
strconn没有传入有效值NULL。
yingziming 2008-07-04
  • 打赏
  • 举报
回复
string strconn= ConfigurationSettings.AppSettings["dsn"].ToString();
rainxy2000 2008-07-04
  • 打赏
  • 举报
回复
问题是出在操作系统上,需要为.NET环境打个补丁,那就是.NET Framework 1.1 SP1。
  .NET Framework 1.1 SP1 说明:Microsoft .NET Framework 1.1 Service Pack 1 (SP1) 主要的特点是改善了安全性。此外,此 Service Pack 还包括了针对自发布 Microsoft .NET Framework 1.1 以来报告的所有客户问题的累积修补程序。特别值得一提的是,SP1 对使用 WSDL 文档、防止数据执行和防范安全性问题(例如缓冲区溢出)提供了更好的支持。
yingziming 2008-07-04
  • 打赏
  • 举报
回复
报什么错误 发出来啊
songxq134 2008-07-04
  • 打赏
  • 举报
回复
“/ContractManage”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 35: //连接本地计算机的TMS数据库
行 36: SqlConnection cn= new SqlConnection (strconn);
行 37: cn.Open ();
行 38: //构造SQL语句,该语句在Users表中检查用户名和密码是否正确
行 39: string mysql= "select * from Users where Uid='"+tbx_uid.Text +"' and UPassword='"+tbx_upassword.Text +"'";


源文件: c:\inetpub\wwwroot\contractmanage\default.aspx.cs 行: 37

堆栈跟踪:


[NullReferenceException: 未将对象引用设置到对象的实例。]
LoadLibraryW(UInt16* ) +0
System.EnterpriseServices.Thunk.Security.Init()
System.EnterpriseServices.Thunk.Security.SuspendImpersonation()
System.EnterpriseServices.Platform.Initialize()
System.EnterpriseServices.Platform.get_W2K()
System.EnterpriseServices.ResourcePool..ctor(TransactionEndDelegate cb)
System.Data.SqlClient.ConnectionPool.CreateResourcePool()
System.Data.SqlClient.ConnectionPool..ctor(DefaultPoolControl ctrl)
System.Data.SqlClient.PoolManager.FindOrCreatePool(DefaultPoolControl ctrl, IntPtr SID)
System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction)
System.Data.SqlClient.SqlConnection.Open()
TMS._Default.btn_login_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\contractmanage\default.aspx.cs:37
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()


110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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