该操作对交易状态无效

时间:2014-11-05 15:05:56

标签: c# sql-server

下面是代码,我在打开连接时出错。执行此操作时的连接状态已关闭。

        using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString))
        {
            using (SqlCommand cmd = con.CreateCommand())
            {
                cmd.CommandType = cmdType;
                cmd.CommandText = CommandName;
                //cmd.Parameters.AddRange(pars);
                if (pars != null)
                {
                    cmd.Parameters.AddRange(pars);
                }

                try
                {
                    **if (con.State != ConnectionState.Open)
                    {
                        con.Open();
                    }**

                    result = cmd.ExecuteNonQuery();
                }
                catch
                {
                    throw;
                }
                finally
                {
                    con.Close();
                }
            }

1 个答案:

答案 0 :(得分:1)

一切都在你的IF条件下。

即使 ConnectionState 已损坏 ,您的IF语句也可能是正确的,因为它不等于<强>

然后它将尝试打开连接,但它已经打开并且已经损坏。所以,它将无法再次打开它。

只需摆脱IF条件并尝试执行它。