当前位置: 代码迷 >> ASP >> ASP中对数据库的操作,该如何解决
  详细解决方案

ASP中对数据库的操作,该如何解决

热度:66   发布时间:2012-08-27 21:21:56.0
ASP中对数据库的操作
string sql = string.Empty;
sql += string.Format("insert into Student values('{0}', '{1}', '{2}', '{3}', '{4}', '{5}')", str1, str2
  , str3, str5, str6, str7);
SqlCommand cmd = new SqlCommand(sql,cn);
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();

上述代码执行后为何出现下面的错误?谢谢大家,希望大家不吝赐教!

“/WebSite2”应用程序中的服务器错误。
--------------------------------------------

ExecuteNonQuery 要求已打开且可用的连接。连接的当前状态为已关闭。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

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

源错误: 

只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL: 

1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如: 

  <%@ Page Language="C#" Debug="true" %>

或:

2. 将以下的节添加到应用程序的配置文件中:

<configuration>
  <system.web>
  <compilation debug="true"/>
  </system.web>
</configuration>

请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。

重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。  

堆栈跟踪: 


[InvalidOperationException: ExecuteNonQuery 要求已打开且可用的连接。连接的当前状态为已关闭。]
  System.Data.SqlClient.SqlConnection.GetOpenConnection(String method) +4879204
  System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command) +11
  System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async) +144
  System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +105
  System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137
  Default2.Button1_Click(Object sender, EventArgs e) +433
  System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
  System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

------解决方案--------------------
没有数据库连接
  相关解决方案