【问题标题】:Connection is open, but I get "ExecuteNonQuery requires an open and available Connection. The connection's current state is closed."连接已打开,但我得到\“ExecuteNonQuery 需要一个打开且可用的连接。连接的当前状态为关闭。\”
【发布时间】:2022-08-03 17:41:20
【问题描述】:

我得到了可怕的“ExecuteNonQuery 需要一个打开且可用的连接。连接的当前状态是关闭的。”错误,即使连接是打开的(见图)。这是我的代码。我哪里错了?我在queryInsertSong.ExecuteNonQuery();称呼。

        connectionManager = new ConnectionManager();
        using (SqlConnection conn = new SqlConnection(connectionManager.ConnectionString))
        {
            conn.Open();
            string insertSong = \"Insert into Songs (SongTitle, Artist, Genre, Album, Year, Length, FullPath) \" +
                \"VALUES (@SongTitle, @Artist, @Genre, @Album, @Year, @Length, @FullPath)\";
            using (SqlCommand queryInsertSong = new SqlCommand(insertSong, conn))
            {
                queryInsertSong.Connection = connectionManager.DBConnection;
                queryInsertSong.Parameters.Add(\"@SongTitle\", SqlDbType.VarChar, 80).Value = song.SongTitle;
                queryInsertSong.Parameters.Add(\"@Artist\", SqlDbType.VarChar, 50).Value = song.Artist;
                queryInsertSong.Parameters.Add(\"@Genre\", SqlDbType.VarChar, 30).Value = song.Genre;
                queryInsertSong.Parameters.Add(\"@Album\", SqlDbType.VarChar, 30).Value = song.Album;
                queryInsertSong.Parameters.Add(\"@Year\", SqlDbType.Int, 4).Value = song.Year;
                queryInsertSong.Parameters.Add(\"@Length\", SqlDbType.VarChar, 80).Value = song.Length;
                queryInsertSong.Parameters.Add(\"@FullPath\", SqlDbType.VarChar, 80).Value = song.FullPath;

                queryInsertSong.ExecuteNonQuery();
            }
        }

    标签: sql connection


    【解决方案1】:

    在执行查询之前最好使用这个 if 条件

    if (conn.State != ConnectionState.Open)
    {
    conn.Close();
    conn.Open();
    }
    

    不需要这条线

     queryInsertSong.Connection = connectionManager.DBConnection;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 2015-04-17
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      相关资源
      最近更新 更多