VB+Access做数据库如何保存图片

VB+Access做数据库如何保存图片,第1张

access是微软发布的一款关系型数据库。access数据库保存的方法很多,可以通过vb,c++,php,asp等开发语言实现;也可以直接向access数据库插入进行保存。下面演示直接插入步骤:

1、打开access数据库,新建一张数据表(存储的字段类型选择:OLE 对象);

2、新建好,保存!然后再打开;右击图像控件,选择插入对象;

3、选中:由文件创建(F);然后点击浏览按钮,选择要保存的;最后,点击确定按钮;

4、同时按下Ctrl+S,对插入数据进行保存。保存成功后,控件会显示Package;

5、双击:控件(Package位置),会看到的预览;

6、这样,一张就保存到access数据库里去了。

两种,一种是将转化成二进制数据流存入数据库中。一种是保存的路径,然后前台读取路径去调用。相关的代码百度一下应该会有,第二种方法实现上比较简单,就是存储路径,然后根据路径读取对应的显示出来。第一种就比较麻烦,要先把转化成二进制数据,读取时就是从数据库读取对应数据再转化成显示出来。

数据中可以存储,但是需要注意不能直接存储,而是转换成二进制或者Base64等的“文本”来存储,在用的时候,可以再转换回来。

在网站开发中,一般将存储在文件系统中,而不是数据系统中,数据库系统中只记录在文件系统中的路径而已。

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的 *** 作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库 *** 作的基础,并且现在几乎所有的数据库均支持SQL。

百度百科_SQL数据库

1、首先,打开Access,选择文件菜单中的“新建“,选择一种数据库类型,这里选择的是本地数据库,即”空白桌面数据库“,如下图所示。

2、在d出的新对话框中设置数据库的名字,如下图所示。

3、然后点击浏览,为数据库设置一个保存的位置,如下图所示。

4、数据库名称和保存位置设置完成后,返回数据库设置界面,点击”创建“,如下图所示。

5、这样,就用Access创建了一个新的空白数据库,就可以在数据库里创建数据表来存储jpg了,如下图所示。

SQL2000用

方法:

1、建立过程

CREATE PROCEDURE sp_textcopy (

@srvname varchar (30),

@login varchar (30),

@password varchar (30),

@dbname varchar (30),

@tbname varchar (30),

@colname varchar (30),

@filename varchar (30),

@whereclause varchar (40),

@direction char(1))

AS

DECLARE @exec_str varchar (255)

SELECT @exec_str =

'textcopy /S ' + @srvname +

' /U ' + @login +

' /P ' + @password +

' /D ' + @dbname +

' /T ' + @tbname +

' /C ' + @colname +

' /W "' + @whereclause +

'" /F ' + @filename +

' /' + @direction

EXEC masterxp_cmdshell @exec_str

2、建表和初始化数据

create table 表名 (编号 int,image列名 image)

go

insert 表名 values(1,0x) -- 必须的,且不是null

insert 表名 values(2,0x) -- 必须的,且不是null

go

3、读入

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bmp','where 编号=1','I' --注意条件是 编号=1

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bbdoc','where 编号=2','I' --注意条件是 编号=2

go

4、读出成文件

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bmp','where 编号=1','O' --注意条件是 编号=1

sp_textcopy '你的服务器名','sa','你的密码','库名','表名','image列名','c:\bbdoc','where 编号=2','O' --注意条件是 编号=2

go

如果报textcopy不是可执行文件的话,你就到

C:\Program Files\Microsoft SQL Server\MSSQL\Binn

目录下拷备 textcopyexe到:

C:\Program Files\Microsoft SQL Server\80\Tools\Binn

SQL2005直接用

INSERT INTO myTable(FileName, FileType, Photo)

SELECT 'Roy1jpg' AS FileName,

'JPG' AS FileType,

FROM OPENROWSET(BULK N'C:\Roy1jpg', SINGLE_BLOB) AS Document

向数据库中保存不同类型的文件,和在数据库中保存是一样的。就是向数据库以byte形式存入

向数据库中保存不同类型的文件,和在数据库中保存是一样的。就是向数据库以byte形式存入

然后就是写入数据库,代码如下:

FileInfo fi = new FileInfo( txtFileNameText );// Replace with your file name

        if ( fiExists

        {

         byte[] bData = null;

int nNewFileID = 0;

// Read file data into buffer

using ( FileStream fs = fiOpenRead() )

            {

bData = new byte[fiLength];

int nReadLength = fsRead( bData,0, (int)(fiLength) );

}

// Add file info into DB

string strQuery = "INSERT INTO FileInfo "

+ " ( FileName, FullName, FileData ) "

+ " VALUES "

+ " ( @FileName, @FullName, @FileData ) "

+ " SELECT @@IDENTITY AS 'Identity'";

SqlCommand sqlComm = new SqlCommand( strQuery, sqlConn );

sqlCommParametersAdd( "@FileName", fiName );

sqlCommParametersAdd( "@FullName", fiFullName );

sqlCommParametersAdd( "@FileData", bData );

            // Get new file ID

SqlDataReader sqlReader = sqlCommExecuteReader();

if( sqlReaderRead() )

{

nNewFileID = intParse(sqlReaderGetValue(0)ToString());

}

            sqlReaderClose();

            sqlCommDispose();

if( nNewFileID > 0 )

            {

                // Add new item in list view

ListViewItem itmNew = lsvFileInfoItemsAdd( fiName );

itmNewTag = nNewFileID;

            }

        }

4而读出的代码如下:

// Get new file name

string strFullName =

dlgFBSaveSelectedPath;

if( strFullName[strFullNameLength - 1] != '//'

)

strFullName

+= @"/";

strFullName +=

lsvFileInfoSelectedItems[0]Text;

string strQuery = "SELECT FileData FROM FileInfo

"

+

" WHERE FileID = " + lsvFileInfoSelectedItems[0]TagToString();

SqlDataAdapter

sqlDAdapter = new SqlDataAdapter(strQuery,sqlConn);

DataSet

sqlRecordSet = new DataSet();

byte[] bData = null;

//Get file data from DB

try

{

sqlDAdapterFill(

sqlRecordSet, "FileInfo" );

foreach( DataRow dr in sqlRecordSetTables["FileInfo"]Rows)

{

if( dr["FileData"] != DBNullValue )

bData

= ( byte[] )dr["FileData"];

}

}

catch(SqlException sqlErr)

{

MessageBoxShow(

sqlErrMessage );

}

catch

{

MessageBoxShow(

"Failed to read data from DB!" );

}

sqlRecordSetDispose();

sqlDAdapterDispose();

if( bData != null )

{

// Save file

FileInfo

fi = new FileInfo( strFullName

);

if( !fiExists )

{

//Create the file

using (FileStream fs = fiCreate())

{

fsWrite(

bData, 0, bDataLength);

}

}

else

{

//Create the file

using (FileStream fs =

fiOpenWrite())

{

fsWrite(

bData, 0, bDataLength);

}

}

}

以上就是关于VB+Access做数据库如何保存图片全部的内容,包括:VB+Access做数据库如何保存图片、数据库中怎么存放图片、SQL数据库中能存照片吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9266745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存