My.Data.SQLDataContext dbc = new My.Data.SQLDataContext("Data Source=.Initial Catalog=TEXTuid=sapwd=8888")
DataSet ds = null
string commads = "SELECT [name],[photo] FROM [TABE1]"
ds = dbc.GetDataSet(commads)
if (ds != null &&ds.Tables.Count >0 &&ds.Tables[0].Rows.Count >0)
{
for (int i = 0i <ds.Tables[0].Rows.Counti++)
{
try
{
//--判断字段数据是否有数据且有照片流数据
if (((Byte[])ds.Tables[0].Rows[i]["photo"]).Length >0 &&((Byte[])ds.Tables[0].Rows[i]["photo"]).Max() >0)
{
byte[] aa = (Byte[])ds.Tables[0].Rows[i]["photo"]
Bitmap bit = new Bitmap(new System.IO.MemoryStream((Byte[])ds.Tables[0].Rows[i]["photo"]))
//--保存照片
pictureBox1.Image = bit
}
}
catch (Exception ex)
{ MessageBox.Show(ex.ToString())}
ds.Clear()ds.Dispose()
}
}
试试
正式运行的时候,你的数据库与图片是与winform放在同一台机器上还是分开的,如果是同一台机器上就简单,直接读取路径显示在picturebox里就行了,如果是在不同机器上就会有点麻烦,最简单的方法是在服务器上开一个IIS之类的web服务,然后你自己创建一个网页,比如是showpic.aspx,把对应资源的id或路径传进去就显示图片,比如showpic.aspx?id=2,之后在winform里用一个WebBrowse来访问这个网页。另一种方法,如果图片不大,也可以不存路径,直接将图像数据存在数据库里。
<img src=<%#DataBinder.Eval(Container.DataItem,"图片路径")%>id="=<%#DataBinder.Eval(Container.DataItem,"编号")%>alt=<%#DataBinder.Eval(Container.DataItem,"备注")%>/>你的数据库里面最起码要有这几个字段,分别用来存放图片路径,编号,备注,好久没写这个了,可能有点不准确,你自己可以查查
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)