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