【发布时间】:2013-03-13 17:58:47
【问题描述】:
我有一个 winform 应用程序(VS 2008),它有 4 个图片框,一个按钮(上传)。当我单击按钮时,我想从数据库(sql server 2005)中按从头到尾的顺序记录图像框。例如:按下按钮,第一个图片框显示第一张图片,按下按钮,第二张图片显示另一个图片框等等。然后第一个图片框显示第五张图片。
pb1 = img1, pb2 = img2, pb3 = img3, pb4 = img4, pb1 = img5,..pb4 = img8,pb1 = img9,..etc..
所以,有一个循环。 我有这段代码,但他在图片框中只记录了一张图片。
private void btnSHow_Click(object sender, EventArgs e)
{
SqlConnection connect = new SqlConnection("Data Source=JOHNO-PC\\SQLEXPRESS;Initial Catalog=DB_TraficSigns;Integrated Security=True");
SqlCommand command = new SqlCommand("SELECT picture FROM Tab_Sign ORDER BY id", connect);
SqlDataAdapter dp = new SqlDataAdapter(command);
DataSet ds = new DataSet("Tab_Sign");
byte[] MyData = new byte[0];
dp.Fill(ds, "Tab_Sign");
DataRow myRow;
myRow = ds.Tables["Tab_Sign"].Rows[0];
MyData = (byte[])myRow["picture"];
MemoryStream stream = new MemoryStream(MyData);
pb1.Image = Image.FromStream(stream);
}
【问题讨论】:
-
抱歉,您有什么问题?
-
不是您问题的解决方案,但仅供参考:您的
SqlConnection、SqlCommand、SqlDataAdapter和MemoryStream都需要在using块中。 -
约翰的观点很好。它们都是非托管资源,因此如果您没有正确处理它们,您可能会遇到内存问题。
标签: c# database winforms picturebox