很多数据库将存储二进制的字段都定义为BLOB类型,实际上它可以存储任何数据类型,比如数字型或者是字符型,当然了,数据库中已经有数字型和字符型自己的定义,所以我们一般也不会将这些数据存储在BLOB中,在BLOB中最常存储的数据是文件数据,原因是因为BLOB有个特点,那就是存入的数据长度不受什么限制,明白了吧?如果你想保存一张图片在数据库中,那么BLOB类型的字段是你唯一的选择。
② 怎样word文档以二进制流的形式存入数据库
protectedvoidButton1_Click(objectsender,EventArgse)
{
//FileInfothefile=newFileInfo(@"D:立项依据.doc");
FileStreamfsDoc=File.OpenRead(@"D:立项依据.doc");
DateTimedtnow=DateTime.Now;
stringfilename=dtnow.ToString("yyyyMMdd")+".doc";
byte[]buffer=newbyte[fsDoc.Length];
fsDoc.Read(buffer,0,(int)fsDoc.Length);
conn.Open();
stringsqlCmd=@"InsertintoMyUploadTable(filename,filesize,filedata,ProjectID,IsAuditActivePage)
Values(@filename,@filesize,@filedata,@ProjectID,1)";
SqlCommandCmd=newSqlCommand(sqlCmd,conn);
Cmd.Parameters.Add("@filename",SqlDbType.VarChar).Value=filename;
Cmd.Parameters.Add("@filesize",SqlDbType.BigInt).Value=fsDoc.Length;
Cmd.Parameters.Add("@filedata",SqlDbType.Image).Value=buffer;
Cmd.Parameters.Add("@ProjectID",SqlDbType.Int).Value=2;
Cmd.ExecuteNonQuery();
fsDoc.Close();
conn.Close();
}
③ 用数据库存储普通二进制文件行不行,一般网盘都是怎么存的
可以,但是不推荐。推荐搭建一套FastDFS。一般的网盘也都是这么做,或类似的框架做的。
④ 文件想要存入数据库只能一二进制的形式存入吗
最好是把文件存到网络服务器上,而数据库中只存一个下载路径。
⑤ 数据库中存储二进制文件的查询效率问题
你所谓的二进制数据文件针对的应该是大对象,一般而言,不会使用到这种存储方式。不过说查询效率,在对大对象进行查询时,像ORACLE,就是给数据文件增加了一个头,用以查询时的定位。而对于大数据的文本文件,比如CLOB,它提供了其他的方式让你来进行数据查询。而你所说的存在其他的字段,那么,如果你存储的是文本文件而非音频视频的话,建议你采用CLOB而非BLOB……另外,就查询效率而言,没有什么固定的方式是最好的,只有针对你的应用,采用最合适的数据库架构才是最优的。在查询效率这点上,建议你看看数据库的簇集,索引,分区/多文件组(oracle是分区,sql server就是多文件组了),这些如果使用恰当的话,可以提高查询效率……
⑥ 以二进制形式保存文件到数据库 有什么优点缺点呢请指教 数据库是mysql,文件类型是doc和txt
优点,不用单独管理文件了呗,文件数据都在数据库里呢。用户想访问文件的话,你就可以做一些权限检查什么的,通过才给它取数据。
缺点,数据库稍微有些压力呗~~~~数据库文件会变大~~~
⑦ 如何实现将文件以二进制形式存放到数据库中
这个很简单的,这要把表单
这样设置一下,表单里面的数据就是以二进制的形式传到数据库的,至于怎么传到数据库,这个就不用说吧,一个SQL插入语句就行了的,。
⑧ 如何能看出文件是以二进制的形式存储到数据库中的
打开数据库记录,看看记录中的内容是不是跟你上传的内容是一致的.或把他再输出到一个文件再对比一下.
并非以二进制形式存储那记录中就只能是你看不懂的内容,而泛指那些非常用格式,如:媒体文件 可执行文件等其他数据文件. 如果你上传的是一个文本文件,那数据库记录中的字段内容也是一个文本文件.
⑨ 怎样才能把文本文件以二进制流的方式存进数据库
用文件流的方式,把从文件中读出的数据转换成二进制,从数据库中读出就是反方向的:** void button1_Click(object sender, EventArgs e){byte[] buffer;buffer = File.ReadAllBytes(\"readme.doc\"); //读取文件内容//创建连接SqlConnection connect = new SqlConnection(@\"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BSPlatform2008;Data Source=.\\SqlExpress\");SqlCommand cmd = connect.CreateCommand();cmd.CommandText = \"INSERT INTO Tmp (FileContent) VALUES (@FileContent)\"; //FileContent字段是Image类型cmd.Parameters.Add(\"@FileContent\", SqlDbType.Image);cmd.Parameters[\"@FileContent\"].Value = buffer; //接受byte[]类型的值connect.Open();cmd.ExecuteNonQuery();connect.Close();} 查看更多答案>>
⑩ 数据库写入磁盘的数据文件为什么用二进制文件而不用文本文件
1.
这个和计算机的存储有关系吧
2.
比如数字,在计算机的表示中,是以二进制表示的。二进制存储节省
空间和时间
。
3.
数据库本身有二进制类型的数据类型,这个以无法以文本存储。