【发布时间】:2010-10-21 11:51:30
【问题描述】:
我正在使用 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;
}
这是我的存储过程....
更改程序 dbo.usp_GetKnownImagesAndValues 作为 开始
select ImageCaptured, ImageValue
from CapturedImages
结束
【问题讨论】:
-
请给我们一些代码
-
何塞,我已将代码粘贴到问题中......
-
如果你先清理然后再构建它是否正确构建?
-
不,但如果我在最后一行放一个调试点,它会起作用 return _listOfNumbers;并在添加行的行上 _listOfNumbers.Add(imNum);否则,如果我只在返回线上放置一个调试点,即使表中的数据相同,我也会得到更少的结果。根据我是否使用断点,它的行为会有所不同,这一事实让我感到困惑。我以前很少使用 Express,我通常使用完整版,但这似乎很奇怪。