数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念实际包括两层意思:数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
数据库系统,是由数据库及其管理软件组成的系统。数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质 、处理对象和管理系统的集合体。
向数据库中保存不同类型的文件,和在数据库中保存是一样的。就是向数据库以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);
}
}
}
数据库表中的是image类型。
数据库表中的Image数据类型可以进行数据的存储。保存的是二进制字节,所以写入数据库Image数据类型时,数据库自动将转换成二进制字节后存入。从数据库Image数据类型读取内容时,则是将二进制字节先转换成,再输出。
扩展资料:
如果SQL Server是缺省安装时, IMAGE类型字段是有长度限制,用来存储大小不超过2g的。缺点是占用了很大的数据存储空间。但是对于之前的存储物理路径来说读取和存储方便了很多。
IMAGE类型字段如果写入的数据超过长度限制就会抛出异常,缺省的长度限制是65536,需要修改数据库的全局配置参数才可以扩大IMAGE类型字段的存储空间。
问题一:数据库怎样可以将放到里面 首先肯定一点,数据库中是可以放数据的!但是这样的话,数据体积会很庞大,当然最好还是把放到文件夹中,数据只用来存放路径,不过最好是存放相对路径,应该以后可能设计到单独放在另一台服务器上,或换了文件夹。
问题二:SQL数据库中能存照片吗? 完全可以存放,但是在数据库中不能以select from a进行查询
但是在相对应得c#、Java中可以查询
是以二进制保存的。
数据库,只要是抽象出来的数据,都可以保存。
而已不能保存的,就是实体,像处啊、鞋子啊、男朋友啊都不姓
问题三:mysql数据库可以存吗? 可以。存的列需要设置成BLOB、MEDIUMBLOB或LONGBLOB等数据类型。
但是以前基本上不会把直接存在数据库里,因为数据库里的数据是为了用来快速分析、快速存取的,数据在mysql里既不能建立索引也不能和其他数据一起分析,存取速度和读写磁盘也没什么区别,每次备份、导入导出数据库时还增加了数据量,降低了效率。所以一般都是把存在系统里,然后把的存放路径放在数据库里。
问题四:如何存入数据库 第一种方式:保存路径至数据库中
第二种方式:数据插入相应表中,参数类型为byte[]
例如:
sql:insert into table(imageColumn) values (@image);
其中@image参数值为byte[]类型的变量
问题五:如何存放在oracle数据库 测试可行。这只是核心Class文件代码,你要是弄不出来,就再联系我,我再把整个项目给你。这是把真个放到数据库
package dao;
import javaioFileInputStream;
import javaioOutputStream;
import javasqlBlob;
import javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javautilScanner;
import oraclesqlBLOB;
public class Insert {
Scanner sc =new Scanner(Systemin);
@SuppressWarnings(deprecation)
public int insertbinary(String pname,String src1){
Connection con = null;
String sql = insert into test values(,);
String sql1 =update test set image= where pname=;
int res = 0;
try {
con=BaseDAOgetConnection();
consetAutomit(false);
PreparedStatement pstm = conprepareStatement(sql);
pstmsetString(1, pname);
EMPTY_BLOB和EMPTY_CLOB返回一个空的LOB定位器,
可以用来初始化一个LOB变量,或在INSERT或UPDATE语句,
初始化LOB列或属性为空。 EMPTY表示LOB初始化,但不填充数据。
pstmsetBlob(2, oraclesqlBLOBempty_lob());
pstmexecuteUpdate();
pstmclose();
pstm = conprepareStatement(select from test where pname=);
pstmsetString(1, pname);
ResultSet rs = pstmexecuteQuery();
rsnext();
BLOB blob = (BLOB) rsgetBlob(2);
OutputStream os = blobgetBinaryOutputStream();
FileInputStream fi = new FileInputStream(src1);
byte[] buff = new byte[1024];
int len = firead(buff);
while (len != -1) {
oswrite(buff);
len = firead(buff);
}
pstm = conprepareStatement(sql1);
pstmsetBlob(1,>>
问题六:如何将储存在MySQL数据库里 通常对用户上传的需要保存到数据库中。解决方法一般有两种:一种是将保存的路径存储到数据库;另一种是将以二进制数据流的形式直接写入数据库字段中。以下为具体方法:
一、保存的上传路径到数据库:
string uppath=;用于保存上传路径
获取上传的文件名
string fileFullname = thisFileUpload1FileName;
获取上传的时间,以时间作为的名字可以防止重名
string dataName = DateTimeNowToString(yyyyMMddhhmmss);
获取的文件名(不含扩展名)
string fileName = fileFullnameSubstring(fileFullnameLastIndexOf(\\) + 1);
获取扩展名
string type = fileFullnameSubstring(fileFullnameLastIndexOf() + 1);
判断是否为要求的格式
if (type == bmp || type == jpg || type == jpeg || type == gif || type == JPG || type == JPEG || type == BMP || type == GIF)
{
将上传到指定路径的文件夹
thisFileUpload1SaveAs(ServerMapPath(~/upload) + \\ + dataName + + type);
将路径保存到变量,将该变量的值保存到数据库相应字段即可
uppath = ~/upload/ + dataName + + type;
}
二、将以二进制数据流直接保存到数据库:
引用如下命名空间:
using SystemDrawing;
using SystemIO;
using SystemDataSqlClient;
设计数据库时,表中相应的字段类型为iamge
保存:
路径
string strPath = thisFileUpload1PostedFileFileNameToString ();
读取
FileStream fs = new SystemIOFileStream(strPath, FileModeOpen, FileAccessRead);
BinaryReader br = new BinaryReader(fs);
byte[] photo = brReadBytes((int>>
问题七:如何在数据库中存储文件 解决方法一般有两种:
一种是将保存的路径存储到数据库;
另一种是将以二进制数据流的形式直接写入数据库字段中。
问题八:如何将存到数据库 通常对用户上传的需要保存到数据库中。解决方法一般有两种:一种是将保存的路径存储到数据库;另一种是将以二进制数据流的形式直接写入数据库字段中。以下为具体方法:
一、保存的上传路径到数据库:
string uppath=;用于保存上传路径
获取上传的文件名
string fileFullname = thisFileUpload1FileName;
获取上传的时间,以时间作为的名字可以防止重名
string dataName = DateTimeNowToString(yyyyMMddhhmmss);
获取的文件名(不含扩展名)
string fileName = fileFullnameSubstring(fileFullnameLastIndexOf(\\) + 1);
获取扩展名
string type = fileFullnameSubstring(fileFullnameLastIndexOf() + 1);
判断是否为要求的格式
if (type == bmp || type == jpg || type == jpeg || type == gif || type == JPG || type == JPEG || type == BMP || type == GIF)
{
将上传到指定路径的文件夹
thisFileUpload1SaveAs(ServerMapPath(~/upload) + \\ + dataName + + type);
将路径保存到变量,将该变量的值保存到数据库相应字段即可
uppath = ~/upload/ + dataName + + type;
}
二、将以二进制数据流直接保存到数据库:
引用如下命名空间:
using SystemDrawing;
using SystemIO;
using SystemDataSqlClient;
设计数据库时,表中相应的字段类型为iamge
保存:
路径
string strPath = thisFileUpload1PostedFileFileNameToString ();
读取
FileStream fs = new SystemIOFileStream(strPath, FileModeOpen, FileAccessRead);
BinaryReader br = new BinaryReader(fs);
byte[] photo = br>>
问题九:怎样数据库access保存jpg 只有两种方法
1存地址,放服务器的一个文件夹里
2存的数据,也就是二进制流
既然第一种你说不行 那只能第二种了。
我只说一下思路,代码网上找一下,多的很,也不麻烦1数据库字段类型为image(sqlserver的是image,不知道access的是不是)
2把文件序列化 放到一个byte[]数组里,然后存到数据库
显示的时候:
1单独在一个页面读出的内容到一个byte[]数组
2用response把这段二进制输出
3在要引用的地方,比如你的image控件,把引用的地址指向这个页面就行了
问题十:如何像数据库中保存? 一般图像是不保存在数据库的而是先将放在工程下的某个文件夹中,将所在的工程文件路径存在数据库中,当程序加载的时候,从数据库中读取的路径,然后根据路径在工程的文件夹中读取文件
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
创建数据库连接。
使用OleDbConnection。
保存到Access数据库。
将转成二进制流存到数据库中,使用OleDbCommand命令。
保存成功后,数据库中图像字段显示为“长二进制数据”。
读取数据库中的。
将读出的数据转成字节数组,而后转成显示。
1、打开开始菜单栏,在菜单栏上找到我们已经安装的SQL server 2008,单击打开它。
2、打开SQL server 2008数据库,来到登录界面,在这里我们只需要输入登录服务器名(电脑IP地址)、登录身份、账号、密码,然后单击登录。
3、成功登录进入SQL 数据库,可以看到连接的数据库基本信息,展开数据库结点,单击数据库然后使用鼠标右键,在d出的菜单中选择附加。
4、接着d出附加数据库的界面,这里我们只需要单击界面上的添加按钮就可以了。
5、单击添加按钮后,新d出来一个框,让你选择你要附加的数据文件路径,选择到我们要附加的数据库文件,单击确定按钮。
6、返回到附加数据库的界面,这是我们可以从界面上看到选择的附加数据库文件信息,然后在上方可以修改要附加的数据库名称。
7、单击确定按钮后,数据库的附加功能就启动了,这时候我们可以从界面上看到附加的进度。
以上就是关于在数据库中存储的是什么全部的内容,包括:在数据库中存储的是什么、如何在数据库中同时保存文本和图片、数据库表中的图片是什么类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)