The connection's current state is closed代码的方法如下:
 public static int ExecuteNonQuery(string connectionString, string cmdText)
        {
            SqlConnection conn = new SqlConnection(connectionString);
            conn.Open();
            int val = 0;
            SqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = cmdText;
            try
            {
                val = cmd.ExecuteNonQuery();
            }
            catch
            {
                conn.Close();
                return val;
            }
            conn.Close();
            return val;
            
        }连接不是打开了,怎么会报这个错误呢?

解决方案 »

  1.   


    conn.Close();
      return val;换个位置
      

  2.   

     public static int ExecuteNonQuery(string connectionString, string cmdText)
      {
      SqlConnection conn = new SqlConnection(connectionString);
      conn.Open();
      int val = 0;
      SqlCommand cmd = conn.CreateCommand();
      cmd.CommandText = cmdText;
      try
      {
      val = cmd.ExecuteNonQuery();
      }
      catch
      {
      conn.Close();
      return val;
      }
     
         return val;
         conn.Close();
      }
      

  3.   

    public static int ExecuteNonQuery(string connectionString, string cmdText)
            {
                SqlConnection conn = new SqlConnection(connectionString);
                conn.Open();
                SqlCommand cmd = conn.CreateCommand();
                cmd.CommandText = cmdText;
                try
                {
                    return cmd.ExecuteNonQuery() > 0 ? 1 : 0;
                }
                catch
                {
                    return 0;
                }
                finally
                {
                    conn.Close();
                }        }