ExecuteScalar 要求已打开且可用的连接。连接的当前状态为已关闭。

zhoucl0220 2008-07-28 05:10:26
OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;Data Source=ZHOUCL;Integrated Security=SSPI;Initial Catalog=TestDW");
try
{
conn.Open();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}

String str="select 密码 from 用户表 where 用户名='"+TextBox1.Text+"'";
OleDbCommand cmd = new OleDbCommand(str, conn);
String result = (String)cmd.ExecuteScalar();

if (result == TextBox2.Text.ToString())
{
TextBox3.Text = "连接成功...";

}

conn.Close();

为什么我在VS里面直接调试没有问题,而我去在IE里面输入http://localhost/...的时候就出现:
ExecuteScalar 要求已打开且可用的连接。连接的当前状态为已关闭。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: ExecuteScalar 要求已打开且可用的连接。连接的当前状态为已关闭。

源错误:


行 41: String str="select 密码 from 用户表 where 用户名='"+TextBox1.Text+"'";
行 42: OleDbCommand cmd = new OleDbCommand(str, conn);
行 43: String result = (String)cmd.ExecuteScalar();
行 44:
行 45: if (result == TextBox2.Text.ToString())


刚刚学习,不知道怎么解决这个问题!~
...全文
1342 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoucl0220 2008-07-29
  • 打赏
  • 举报
回复
前面已经解决,先结贴,但还有一个问题就是为什么要集成Windows的身份验证呢?不明白,我不选这个,如果在if()后面加一句{Response.Redirect("123.htm");}为什么它不进行跳转呢?如果选了集成Windows的身份验证就跳转,晕!!!
asdfgh_5982 2008-07-29
  • 打赏
  • 举报
回复
楼主不厚道,我帮解决问题了,才给3分!
rangeon 2008-07-28
  • 打赏
  • 举报
回复
学习了
minhua1983 2008-07-28
  • 打赏
  • 举报
回复
我估计你链接字符串错了
所以conn.Close();时错了,因为你根本就没打开,就去关闭,所以出错了。
asdfgh_5982 2008-07-28
  • 打赏
  • 举报
回复
不知道有无启用IIS的 集成 windows身份验证
ycxiangyun 2008-07-28
  • 打赏
  • 举报
回复
你在try块中conn.Open(); 时就已经出现了异常
shoushii 2008-07-28
  • 打赏
  • 举报
回复
OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;Data Source=ZHOUCL;Integrated Security=SSPI;Initial Catalog=TestDW"); 
try
{

String str="select 密码 from 用户表 where 用户名='"+TextBox1.Text+"'";
OleDbCommand cmd = new OleDbCommand(str, conn);
conn.Open();
String result = (String)cmd.ExecuteScalar();

if (result == TextBox2.Text.ToString())
{
TextBox3.Text = "连接成功...";

}

conn.Close();

}
catch (Exception ex)
{
Response.Write(ex.Message);
}

Alvin709 2008-07-28
  • 打赏
  • 举报
回复

OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;Data Source=ZHOUCL;Integrated Security=SSPI;Initial Catalog=TestDW");
try
{
conn.Open();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}

String str="select 密码 from 用户表 where 用户名='"+TextBox1.Text+"'";
OleDbCommand cmd = new OleDbCommand(str, conn);
conn.Open(); //打开数据库连接
String result = (String)cmd.ExecuteScalar();

if (result == TextBox2.Text.ToString())
{
TextBox3.Text = "连接成功...";

}

conn.Close();

62,074

社区成员

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

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

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

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