使用C#读取SQL数据库中的图片

SQL中TEXT数据库下TABE1表中包含有name与photo{属性为imagenull}的列,已知道photo中保存的图片是对二进制数据流经Base64编码后的字符串... SQL中 TEXT数据库 下TABE1表中包含有 name 与 photo{属性为image null}的列, 已知道photo中保存的图片是对二进制数据流经Base64编码后的字符串,,,,请问下,我的Winform中 有一个pictureBox1 和一个BUtton按钮,请问我如何通过button的点击,使picturebox中显示出数据库中的图片, 谢谢了,初学者,麻烦大神详细些 数据库连接为 本机 sa 8888 展开
 我来答
吥滅傳説
2014-01-18 · 超过13用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:12.9万
展开全部
//--用自己的初始连接 初始一个SQL连接实体
My.Data.SQLDataContext dbc = new My.Data.SQLDataContext("Data Source=.;Initial Catalog=TEXT;uid=sa;pwd=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 = 0; i < ds.Tables[0].Rows.Count; i++)
{
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();
}
}
试试
更多追问追答
追问
现在就是我库里的《二进制数据》是经过Base64编码后的,,,图片是对二进制数据流经Base64编码后的字符串,现在总读不成功,,是不是要String strbaser64 = Convert.ToBase64String(XXX)之类的东西啊    现在程序读写自己的图片都可以了,有几条《二进制数据》的图片信息是他人的,我现在只知道它的二进制数据流是通过了BASE64编码的
追答
恩 对的byte[] aa = Convert.FromBase64String(ds.Tables[0].Rows[i]["photo"]);这样子试试
yanji56782010
2014-01-18 · TA获得超过462个赞
知道小有建树答主
回答量:1433
采纳率:0%
帮助的人:622万
展开全部
一般都是把你上传图片的图片存在你网站中的文件夹中,数据库中保存的是图片的路劲,要的时候通过路劲,取出图片
追问
谢谢啊。晕,我说的是现有情况,我怎样读出来
追答

这个是我用的图片显示,这个imapath是我定义的路劲,你的话你试试吧那个字符串读取出来代替我上面的imapath应该就可以了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
merlindlut
2014-01-18 · TA获得超过422个赞
知道小有建树答主
回答量:945
采纳率:0%
帮助的人:406万
展开全部
直接用数据绑定,不需要读成字符串
追问
可以详细说下吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式