我注意到其他人也遇到了同样的问题,但是找不到解决方法。我的ASP.NET应用程序之前一直工作得很好,突然出现了这个问题。它没有抛出任何异常,但是存储过程返回的值与以前不同。当我调试程序时,发现我的SqlCommand
存在问题。
SqlCommand cmd = new SqlCommand();
cmd.Parameters.AddWithValue("@UserID", Convert.ToInt64(Request.QueryString["UserID"]));
DataTable dtuser = db.GetDataTable(cmd, "sp_GetUserbyUserId");
我添加了一个观察器并在cmd上查看。连接的ServerVersion属性显示以上信息,而Message属性则显示“无效操作。连接已关闭。” 我认为这可能导致我的SPs无法正常运行。这里可能会有什么问题呢?最近我在web.config中做的更改只是在appSettings下添加了一个新字段。
编辑: 以下是我的DBHandler类方法,由上面的db实例调用。
public class DBHandler
{
private string connectionString = "";
public DBHandler()
{
connectionString = WebConfigurationManager.ConnectionStrings["myConString"].ConnectionString.ToString();
}
public DataTable GetDataTable(SqlCommand sqlcmdWithParameters, string CommandText)
{
DataTable dtReturn = new DataTable();
SqlDataAdapter sqlda = new SqlDataAdapter(sqlcmdWithParameters);
using (SqlConnection sqlcon = new SqlConnection(connectionString))
{
sqlcmdWithParameters.Connection = sqlcon;
sqlcmdWithParameters.CommandType = CommandType.StoredProcedure;
sqlcmdWithParameters.CommandText = CommandText;
try
{
DataSet ds = new DataSet();
sqlda.Fill(ds, "Table");
dtReturn = ds.Tables["Table"];
}
catch (Exception ex)
{
//Handling Exceptions
}
}
return dtReturn;
}
}
我在Web.config中的连接字符串如下:
<connectionStrings>
<add name="myConString" connectionString="Data Source=xxx.xxx.x.x;Initial Catalog=myDB;User ID=myId;Password = myPWD" providerName="System.Data.SqlClient" />
</connectionStrings>