2009-04-23 16 views
0

J'utilise Visual C# 2008 Express Edition et une base de données Express SQL. Chaque fois que je construis ma solution, j'obtiens une erreur comme celle ci-dessus. Évidemment, le nom du fichier change. Un nouveau fichier est également créé chaque fois que j'atteins un point de débogage.Le fichier 'C: .... ..... ..... bin debug 128849991926295643' existe déjà

J'ai un proc stocké qui obtient chaque ligne d'une table de base de données, il obtient ces lignes chaque fois que le formulaire principal initialise et les ajoute à une liste Generics. Sans insérer ou supprimer de la table, il obtient un nombre différent de lignes chaque fois que je démarre mon application Windows. L'erreur a commencé à se produire en même temps que le problème de récupération de données bizarre. Des idées sur ce qui peut causer cela?

Merci

Jose,

Bien sûr, la méthode ici est mon C#, il récupère toutes les lignes de ma table, chaque ligne a un int et et l'image ....

private List<ImageNumber> GetListOfKnownImagesAndNumbers() 
    { 
     //ImageNumber imNum = new ImageNumber(); 

     SqlCommand sqlCommand = new SqlCommand(); 
     sqlCommand.Connection = _conn; 

     try 
     { 
      MemoryStream ms = new MemoryStream(); 

      sqlCommand.CommandText = "usp_GetKnownImagesAndValues"; 

      _conn.Open(); 
      using (IDataReader dr = sqlCommand.ExecuteReader()) 
      { 
       while (dr.Read()) 
       { 
        ImageNumber imNum = new ImageNumber(); 
        imNum.Value = dr.IsDBNull(dr.GetOrdinal("ImageValue")) ? 0 : Convert.ToInt32(dr["ImageValue"]); 

        //Turn the bitmap into a byte array 
        byte[] barrImg = (byte[])dr["ImageCaptured"]; 
        string strfn = Convert.ToString(DateTime.Now.ToFileTime()); 
        FileStream fs = new FileStream(strfn, 
             FileMode.CreateNew, FileAccess.Write); 
        fs.Write(barrImg, 0, barrImg.Length); 
        fs.Flush(); 
        fs.Close(); 
        imNum.Image = (Bitmap)Image.FromFile(strfn); 

        _listOfNumbers.Add(imNum); 
       } 
       dr.Close(); 
       _conn.Close(); 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
     finally 
     { 
      _conn.Close(); 
     } 

     return _listOfNumbers; 

    } 

Et voici mon proc stocké ....

PROCEDURE dbo.usp_GetKnownImagesAndValues ​​ ALTER AS BEGIN

select ImageCaptured, ImageValue 
from CapturedImages 

FIN

+1

S'il vous plaît nous montrer un code –

+0

Jose, J'ai collé mon code dans la question .... –

+0

Si vous faites un nettoyage et une construction-t-il construire correctement? – Damovisa

Répondre

1

Merci pour regarder ce. La réponse à la fin était de mettre un Thread.Sleep dans la boucle while et il a commencé à fonctionner parfaitement. Il y a peut-être autre chose que je pourrais faire, j'attends évidemment que quelque chose se termine, c'est pourquoi permettre plus de temps a aidé ici. Si je savais ce qu'il fallait faire et comment détecter quand il avait terminé, je pourrais vérifier cela au lieu d'attendre simplement un peu de temps.