2 lylfqwer lylfqwer 于 2017.01.08 15:32 提问

求代码!MFC中如何把一张图片保存到SQL server 2008中,再从数据库中显示到界面控件上。 50C

Vc++2010 MFC中如何在界面导入一张图片保存到SQL server 2008数据库中,再从数据库中显示到界面控件上。

2个回答

welan123123
welan123123   2017.01.09 09:54

第一步:建立数据库表,比如:id char,pic image。

第二步:建立MFC单文档应用程序,再添加类CMyRecordset,基类选择CRecordset,导入数据库的刚建立的表。

第三步:在doc.h中加入 CMyRecordset m_pSet。

第四步:在view.h中加入CMyRecordset* pSet。

第五步:在view.cpp中的OnInitialUpdate()加入

        pSet=&GetDocument()->m_pSet;
        if(pSet->IsOpen())
        pSet->Close();
        pSet->Open();

第六步:存图片

void ****View::OnOpen()
{
// TODO: Add your command handler code here
CFileDialog filedlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"images Files (*.jpg)|*.jpg",this);
CString path;
if(filedlg.DoModal()==IDOK)
{
path=filedlg.GetPathName();
CFile file;
CFileStatus filestatus;
file.Open(path,CFile::modeRead);
file.GetStatus(filestatus);
pSet->AddNew();
pSet->m_pic.m_dwDataLength=filestatus.m_size;
HGLOBAL hGlobal = GlobalAlloc(GPTR,filestatus.m_size);
pSet->m_pic.m_hData = GlobalLock(hGlobal);
file.ReadHuge(pSet->m_pic.m_hData,filestatus.m_size);
pSet->m_id=_T("1");
pSet->SetFieldDirty(NULL);
pSet->SetFieldNull(NULL,FALSE);
pSet->Update();
GlobalUnlock(hGlobal);
}
}

第七步:读取图片

void ****View::OnRead()
{
// TODO: Add your command handler code here
CFile file2;
file2.Open("C://a.jpg",CFile::modeCreate|CFile::modeWrite);
pSet->MoveFirst();//读第一条记录
BYTE* content=new BYTE[pSet->m_pic.m_dwDataLength];
memcpy(content,GlobalLock(pSet->m_pic.m_hData),pSet->m_pic.m_dwDataLength);
file2.WriteHuge(content,pSet->m_pic.m_dwDataLength);
}

lylfqwer
lylfqwer 我建立MFC基于对话框的,怎么改呢?谢谢!
一年多之前 回复
xiaxuqu
xiaxuqu   2017.01.11 10:28

可以加我QQ 421656413

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MFC/VC++中怎样将一个位图添加到数据库中并且将其读出来到指定的Picture控件上
看这篇文章之前建议先看一下下面这篇文章: VC下显示位图的几种方法   http://blog.chinaunix.net/uid-607545-id-2088102.html或  http://blog.csdn.net/ply421600/article/details/6692967 和http://hi.baidu.com/vbcs003/item/efffa6e775cdf80d8
怎样上传图片,把图片保存到sql server数据库里
先在SQL  Server中建立一个图片存储的数库表,ImageData  Column为图象二进制数据储存字段,ImageContentType  Column为图象文件类型记录字段,ImageDescription  Column为储蓄图象文件说明字段,ImageSize  Column为储存图象文件长度字段,结构如下:  CREATE  TABLE  [dbo].[ImageStore]  
WPF中把图片保存到数据库,并从数据库提取出来显示
首先需要要数据库中建立一张用于存放图片的表file_table,其中定义一个字段file_blob,类型为BLOB,用来存放图片.之后因为我是用存储过程写入数据库的,所以还要写一个存储过程,用一个BLOB类型的参数来传参,具体内容是一个很简单的insert语句,就不说了,之后在我们的程序里调用这个存储过程就OK了.接下来我们要做的是把我们选择的图片转换成二进制流,再把它传给我们写的存储过程,转二进
C#中使用FileUpload上传图片到SQL数据库中以image类型存储并使用Image控件显示注意事项
当我们需要以数据流存储图片到数据库中(而不是文件路径),需要考虑很多因素,不同的环境决定了采取不同方法。 1.将图片存入数据库。首先,当我们决定使用FileUpload上传图片,需要考虑,FileUpload的功能主要是在客户端选取图片,然后使用FileUpload的SaveAs方法将选取的图片的地址保存到服务器端保存,因为我们使用的数据流存储图片,所以没有必要将图片保存到服务器端。 其次,F
怎么样把图片存放到SQL SERVER 数据库中?
存入:  .首先将图片文件以二进制方式读出存入一个变量。  $imgname = "图片文件名";$fp = fopen($imgname,"rb");$bit = fread($fp,filesize($imgname));fclose($fp); .将这个变量用base_encode算一下  $bit = base64_encode($bit); 入库处
jpg编码再解码
打开一张jpeg图片,把图片转为16进制,保存到1.txt中,再从txt中还原图片,生成新图片
存储图片到数据库的image字段中,并在Winform中显示图片
有人问到图片如何存储到数据库中,以前也做过,但年代已有点久远,选择使用的软件都升级了,有些东西已废弃。所以花了点时间用VS2008+SQL Server 2005做了一个测试程序,希望能对人有所帮助。与人玫瑰,手有余香。涉及到存储过程,ADO.NET操纵数据库,SQL Server 2005中的image(或varbinary(max))字段使用。        在SQL Server 20
把图片上传保存到数据库
下面我来汇总一下如何将图片保存到SqlServer、Oracle、Access数据库中。         首先,我们要明白图片是以二进制的形式保存在数据库中的,那么把图片保存到数据库中的步骤大体上有这几步1.将图片转换为二进制数组(byte[]);2.把转换后的二进制数组(byte[])作为参数传递给要执行的Command;3.执行Command;      首先,如何把图片转换成byte[],如
MFC存储图片到SQL Server数据库
第一步:建立数据库表,比如:id char,pic image。第二步:建立MFC单文档应用程序,再添加类CMyRecordset,基类选择CRecordset,导入数据库的刚建立的表。第三步:在doc.h中加入 CMyRecordset m_pSet。第四步:在view.h中加入CMyRecordset* pSet。第五步:在view.cpp中的OnInitialUpdate()加入            pSet=&GetDocument()->m_pSet;            if(pSet->I
如何将图片存到数据库中,并在前台显示:
将图片转为文件输入流,再将输入流读取转化为base64码 将base64码存入数据库中,前台可直接根据base64码读取成图片   在这里就不把数据库连接等方法贴出来了,直接把核心代码贴出来: ut.print(base64Img); 前台要显示时,只需获取图片的base64码字符串传到前台转换即可展示图片: " width="50%" height="50%">