La base de données est utilisé par un autre processus ... mais ce processus?

J'ai écrit un très petit programme C#, qui utilise une très petite base de données SQL Server, purement pour certains d'apprentissage & des fins de test. La base de données est utilisé dans ce nouveau projet et nulle part ailleurs. Cependant, je reçois des problèmes pendant la course Débogue où le programme ne fonctionnera pas, car la base de données "est utilisé par un autre processus".

Si je redémarre ma machine, il fonctionnera de nouveau, et puis, après quelques essais je vais avoir le même problème à nouveau.

J'ai trouvé beaucoup, beaucoup de problèmes similaires signalés partout sur l'Internet, mais ne trouve pas de réponse définitive quant à la façon de résoudre ce problème. Tout d'abord, comment puis-je savoir ce que "d'autres processus" est à l'aide de mon .mdf & .fichiers ldf ? Alors, comment puis-je obtenir ces fichiers mis à disposition & qui ne sont pas détenus dans le but d'arrêter ce qui se passe fois après le temps ?!?

Je suis nouveau sur VS2010, SQL Server & C#, donc s'il vous plaît être très descriptif, les réponses que vous me donnez !!!

C'est mon code, comme vous pouvez le voir, vous ne pouviez pas obtenir quoi que ce soit beaucoup plus basique, certes, je ne devrais pas être en cours d'exécution en tant de problèmes !!!

namespace MySqlTest
{
    public partial class Form1 : Form
    {
        SqlConnection myDB = new SqlConnection(@"Data Source=MEDESKTOP;AttachDbFilename=|DataDirectory|\SqlTestDB.mdf;Initial Catalog=MySqlDB;Integrated Security=True");
        SqlDataAdapter myDA = new SqlDataAdapter();
        SqlCommand mySqlCmd = new SqlCommand();

        string mySQLcmd;
        int myCount;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("myDB state = " + myDB.State.ToString());
            //Open SQL File
            myDB.Open();
            MessageBox.Show("myDB state = " + myDB.State.ToString());
        }

        private void button2_Click(object sender, EventArgs e)
        {
            myCount++;
            MessageBox.Show("myCount = " + myCount.ToString());
            //Insert Record Into  SQL File
            mySqlCmd.Connection = myDB;
            mySqlCmd.CommandText = "INSERT INTO Parent(ParentName) Values(myCount)";
            myDA = new SqlDataAdapter(mySqlCmd);
            mySqlCmd.ExecuteNonQuery();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //Read Record From SQL File
        }

        private void button4_Click(object sender, EventArgs e)
        {
            //Read All Records From SQL File
        }

        private void button5_Click(object sender, EventArgs e)
        {
            //Delete Record From DQL File
        }

        private void button6_Click(object sender, EventArgs e)
        {
            MessageBox.Show("myDB state = " + myDB.State.ToString());
            //Close SQL File
            myDB.Close();
            MessageBox.Show("myDB state = " + myDB.State.ToString());
        }

        private void button7_Click(object sender, EventArgs e)
        {
            //Quit
            this.Close();
        }
    }
}
Avez-vous le même message d'erreur lorsque vous exécutez votre application première fois? Si vous obtenez cette erreur deuxième moment-là, je suppose que votre demande n'a pas fermé db connexion correctement.
Quand j'ai d'abord exécuter le programme, il fonctionne très bien, et continue à travailler, mais je suis de débogage et d'arrêter le programme sans logiquement compléter parfois. Il ne semble pas être un point régulier à qui cela commence à se produire, mais peut-être que c'est lié à mon arrêt du debug sans la fermeture de la DB. Serait VS2010 pas à gérer que si ?!?

OriginalL'auteur Gary Heath | 2012-02-08