文件'C:\ .... \ ..... \ ..... \ bin \ debug \ 128849991926295643'已经存在

时间:2009-04-23 22:35:41

标签: database numbers rows

我正在使用Visual C#2008 Express Edition和Express SQL数据库。每次我构建我的解决方案时,我都会收到类似上面的错误。显然文件名会发生变化。每次点击调试点时都会创建一个新文件。

我有一个存储过程,它从数据库表中获取每一行,每次主表单初始化时都会获取这些行,并将它们添加到泛型列表中。无需从表中插入或删除,每次启动Windows应用程序时都会获得不同的行数。错误开始发生在奇怪的数据检索问题的同时。关于什么可能导致这个问题的任何想法?

由于

圣何塞

当然,这是我的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 如 BEGIN

select  ImageCaptured, ImageValue
from CapturedImages

结束

1 个答案:

答案 0 :(得分:1)

感谢您查看此内容。最后的答案是将一个Thread.Sleep放在while循环中,它开始完美地工作。可能还有其他我可以做的事情,我显然正在等待一些事情要完成,这就是为什么允许更多的时间在这里有所帮助。如果我知道需要完成什么以及如何检测它何时完成,那么我可以检查它而不是简单地等待一小段时间。