Файл 'C: \ .... \ ..... \ ..... \ bin \ debug \ 128849991926295643' уже существует - PullRequest
0 голосов
/ 24 апреля 2009

Я использую Visual C # 2008 Express Edition и базу данных Express SQL. Каждый раз, когда я строю свое решение, я получаю ошибку, подобную приведенной выше. Очевидно, что имя файла меняется. Новый файл также создается каждый раз, когда я достигаю точки отладки.

У меня есть сохраненный процесс, который получает каждую строку из таблицы базы данных, он получает эти строки каждый раз, когда инициализируется основная форма, и добавляет их в список универсальных элементов. Не вставляя и не удаляя из таблицы, он получает разное количество строк при каждом запуске приложения Windows. Ошибка стала возникать одновременно со странной проблемой поиска данных. Есть какие-нибудь идеи о том, что может вызвать это?

Спасибо

Jose,

Конечно, вот мой метод c #, он извлекает каждую строку в моей таблице, каждая строка имеет int и и 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;

    }

А вот и мой сохраненный процесс ....

ALTER PROCEDURE dbo.usp_GetKnownImagesAndValues КАК НАЧАТЬ

select  ImageCaptured, ImageValue
from CapturedImages

END

1 Ответ

1 голос
/ 12 мая 2009

Спасибо за просмотр. В итоге ответом было поместить Thread.Sleep в цикл while, и он начал работать отлично. Может быть, я мог бы еще кое-что сделать, я, очевидно, жду, когда что-то завершится, поэтому выделение большего количества времени здесь помогло. Если бы я знал, что нужно завершить, и как определить, когда он завершился, я мог бы проверить это, вместо того, чтобы просто подождать некоторое время.

...