当前位置:文档之家› 如何在数据库中保存大量图片

如何在数据库中保存大量图片

如何在数据库中保存大量图片
如何在数据库中保存大量图片

如何在数据库中保存大量图片

作者: 刘师义上海盟威软件有限公司软件开发工程师

时间: 2010/6/1

来源: 上海盟威软件有限公司(https://www.doczj.com/doc/e84620162.html,)。公司拥有以微软最有价值专家为核心的技术团队,专业从事Aaccess开发培训,学员可非脱产方式参加培训,自由安排学习时间,并通过网络获得公司的技术支持,几年来已为全国各地大中型企事业单位培养了众多“精管理、懂编程”的复合型人才,详情了解:https://www.doczj.com/doc/e84620162.html,/training.asp。

一、摘要:

我们将图片保存到数据库中,使用维护起来都变得很简单尤其适用于小型便携式的Access管理系统。但如果直接通过绑定对象框控件的插入对象方法将图片插入的话,非位图图片体积会暴增几十上百倍,从而大大降低了实用性。在本文中,讲述了如何将图片以原始大小保存到数据库中进行使用的方法。

二、正文:

一般情况下,如果要将图片保存到数据库中,都是通过绑定对象框的“插入对象”功能来实现,但是这样做会造成数据库体积的明显增大。尤其是在Access 2007之前的版本中所有插入的图上均会被转换成位图,而如果把一个JPG图片转换成位图,我们会发现图片的大小增大了几十上百倍。那么有没有一种办法能够直接把保存源格式的图片到数据库中呢?答案是肯定的,答案就在ADO中的流对象(Stream)。此处要注意的是,ADO必须是2.5以及更新的版本,老版本中是没有流对象的。

流对象主要有两种用途:一种是处理文档数据,这样可以通过流对象的属性和方法来读取和修改文档内容;另一种就是把其它任意格式的文件以二进制数据流进行处理,不关心文件的格式和内容。在本文中我们讨论的是在数据库中存储图片,所以我们这里主要讨论的就是它的后一种用途。为了更容易理解,我们在此基于一个示例程序来进行说明。

首先我们需要在表中添加至少两个字段,一个用来存放图片的名称,一个用来存放图片的二进制文件数据:

然后我们基于此表来创建窗体,通过窗体实现图片的保存以及将保存的图片显示出来。在此窗体中我们需要手动添加三个控件:

图像控件:名称:imgPic 图片类型:链接

按钮控件:名称:cmdAdd 标题:添加/更改图片单击事件:[事件过程]

按钮控件:名称:cmdDel 标题:删除图片单击事件:[事件过程]

由于相关的记录修改添加都是通过代码完成,所以我们需要将“图片名称”的“锁定”属性设为“是”,另外图片数据是一个绑定对象框控件,它只用来存放图片文件数据,不需要显示出来,所以我们要将其“可见性”属性设为“否”。(这里有一个可能由于ADO的流对象和窗体绑定的DAO记录集兼容性造成的问题:向流对象中写入图片数据时,直接把窗体绑定记录集中“图片数据”字段值中的二进制数据写入时会出错,需要绑定一个“绑定对象控件”,将控件中的二进制数据写入才不会出错。)

接下来我们需要在单击“添加/更改图片”按钮时将图片以二进制方式写入到数据库中,及以在窗体的记录切换时自动将二进制数据再还原为图片文件,并以链接的方式显示在图像控件中,这些都需要以编程方式来实现,具体实现代码如下:

'添加图片并将图片保存到数据库中

Private Sub cmEdit_Click()

Dim stm As ADODB.Stream '定义流对象变量

Dim strPathName As String '文件名临时变量

'调用Access通用的文件选取对话框来选择一个图片文件(需要最低2003版Access)

With FileDialog(3) 'msoFileDialogFilePicker

'清除原有文件类型筛选

.Filters.Clear

'添加自定义文件类型筛选

.Filters.Add "图片文件", "*.jpg;*.gif;*.png"

'如果对话框未被取消,则将选取的文件名保存到变量

If .Show Then strPathName = .SelectedItems(1)

End With

'如果变量不为空说明对话框没有被取消

If strPathName <> "" Then

'初始化流对象

Set stm = New ADODB.Stream

'设置为二进制处理方式

stm.Type = adTypeBinary

'设置为读写权限模式

stm.Mode = adModeReadWrite

'打开流对象

stm.Open

'从将文件加载到流对象

stm.LoadFromFile strPathName

'将流对象中的二进制数据保存到数据库中

Me!图片数据= stm.Read

'关闭流对象

stm.Close

'在图像控件中显示刚才的图片

Me.imgPic.Picture = strPathName

'将图片的文件名保存到“图片名称”字段,不保存路径

Me!图片名称= Mid$(strPathName, InStrRev(strPathName, "\") + 1)

End If

'销毁对象变量

Set stm = Nothing

End Sub

'从数据库中删除图片

Private Sub cmdDel_Click()

Me!图片数据= Null '清空图片数据字段

Me!图片名称= Null '清空图片名称字段

Me.imgPic.Picture = "" '清除图像控件中显示的图片

End Sub

'通过成为当前事件,实现记录切换时自动显示图片

Private Sub Form_Current()

Dim stm As ADODB.Stream '定义流对象变量

Dim strPathName As String '文件名临时变量

'如果“图片数据”字段不为空

If Not IsNull(Me!图片数据) Then

'根据“图片名称”字段生成一个到操作系统临时文件夹的路径名

strPathName = Environ$("Temp") & "\" & Me!图片名称

'初始化流对象变量

Set stm = New ADODB.Stream

'设置为二进制处理方式

stm.Type = adTypeBinary

'设置为读写权限模式

stm.Mode = adModeReadWrite

'打开流对象

stm.Open

'将数据库中的二进制数据写入流对象变量

stm.Write Me!图片数据

'另存为文件,如果文件存在则覆盖

stm.SaveToFile strPathName, adSaveCreateOverWrite

'关闭流对象

stm.Close

'在图像控件中显示刚才保存的图片

Me.imgPic.Picture = strPathName

Else

'如果当前记录中没有图片数据,则清除图像控件中的显示

Me.imgPic.Picture = ""

End If

'销毁对象变量

Set stm = Nothing

End Sub

数据库图片的存储

1、引言 数据库应用程序,特别是基于WEB的数据库应用程序,常会涉及到图片信息的存储和显示。通常我们使用的方法是将所要显示的图片存在特定的目录下,在数据库中保存相应的图片的名称,在JSP中建立相应的数据源,利用数据库访问技术处理图片信息。但是,如果我们想动态的显示图片,上述方法就不能满足需要了。我们必须把图片存入数据库,然后通过编程动态地显示我们需要的图片。实际操作中,可以利用JSP的编程模式来实现图片的数据库存储和显示。 2、建立后台数据库 假定处理的是图片新闻,那么我们可以建立相应的数据库及数据表对象。我们要存取的数据表结构的SQL脚本如下所示: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[picturenews]') andOBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[picturenews] GO CREATE TABLE [dbo].[picturenews] ( [id] [int] IDENTITY (1, 1) NOT NULL , [image] [image] NULL , [content] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL , [detail] [varchar] (5000) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO 表picturenews中,字段id作为标识,每存储一行数据,自动增加1。字段image 用于存储图片信息,其数据类型为“image”。 3、向数据库存储二进制图片 启动Dreamweaver MX后,新建一个JSP文件。其代码如下所示。 <%@ page contentType="text/html;charset=gb2312"%>

教学管理系统数据库ER图及SQL语句

教学管理系统 一、系统功能需求 学校教务管理系统是针对学校的大量信息处理工作而开发的管理软件,完成的主要功能如下: (1) 学生基本信息管理:能够对学生基本信息进行输入、删除、修改。学生基本信息包括:学号、姓名、性别、出生日期、入学成绩、所在系号。 (2) 系部基本信息管理:系部的基本信息输入、修改、删除。系部基本信息包括:系号、系名称、系的简介。 (3) 课程信息管理:课程信息的输入、修改、删除。课程信息包括:课程号、课程名称、任课教师号、学时、学分、上课时间、上课地点、考试时间。 (4) 教职工信息管理:教职工信息的输入、修改、删除。教职工信息包括:职工号、姓名、性别、出身年月、所在系号、职称、技术专长。 (5) 选课管理:学号、学生、课程号、课程名称、上课教师姓名、系号 每学期所选课程的学分不能超过15分。学生可以同时选修一门或多门课程。可以同时为多个学生选修某一门或某几门课程。可以删除和修改选课信息。 (6) 成绩管理可以按课程输入和修改成绩,也可以按学生输入和修改成绩。 (7) 信息查询 可以按学号、姓名、系号查询学生基本信息。 可以按职工号、姓名、系号查询教职工基本信息。 可以按系号、系名称查询系的基本信息。 可以按课程号、课程名称、上课教师姓名查询课程基本信息。 按学号、课程号、课程名称、上课教师姓名、系号查询学生成绩,内容包括课程基本情况。若查询涉及多门课程,则按课程分组。 每门课程按总评成绩从高分到低分给出选修该门课程的所有学生的成绩(平时成绩、考试成绩和总评成绩)。 (8) 统计报表 a、成绩报表:内容包括课程基本信息(课程号、课程名称、任课教师号、学时、学分),选课学生名单(学号、姓名、性别),每个学生的平时成绩、考试成绩和总评成绩。 能按课程号、课程名称、教师姓名输出对应课程的成绩报表。 b、能够根据课程、授课教师统计成绩>=90分、>=80分、>=70分、>=60分及不及格学生的人数及比例。 二、任务描述 1、根据需求描述,完成数据概念模型设计,画出E-R图; 2、优化E-R图,给出数据逻辑模型; 3、将逻辑模型转换成物理模型并创建数据库和数据表。要求数据表能尽量实现数 据完整性要求。

C#从SQL 数据库中读取和存入图片

C#从SQL 数据库中读取和存入图片 本实例主要介绍如何将图片存入数据库。将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类、BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用 ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中。主要代码如下: private void button1_Click(object sender, EventArgs e) { openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP"; if(openFileDialog1.ShowDialog()==DialogResult.OK) { string fullpath =openFileDialog1.FileName;//文件路径 FileStream fs = new FileStream(fullpath, FileMode.Open); byte[] imagebytes =new byte[fs.Length]; BinaryReader br = new BinaryReader(fs); imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length)); //打开数据库 SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05"); con.Open(); SqlCommand com = new SqlCommand("insert into tb_08 values(@ImageList)",con); com.Parameters.Add("ImageList", SqlDbType.Image); com.Parameters["ImageList"].Value = imagebytes; com.ExecuteNonQuery(); con.Close();

怎样将图片上传到数据库进行保存

这个范例共包括三个ASP文件和一个数据库(一个表),全部在同一目录下。 1、tblImage 表结构(ACCESS 2000) sn 自动编号序列号 content-type 文本图片类型 image OLE 对象图片数据 2、SimpleImageToData.asp:上传表单及保存图片到数据库的代码部分,主要文件。 <%@ Language=VBScript %> <% option explicit %> <% '从一个完整路径中析出文件名称 function getFileNamefromPath(strPath) getFileNamefromPath = mid(strPath,instrrev(strPath,"\")+1) end function '定义数据库连接字符串 dim cnstr cnstr = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.MapPath("./upload.mdb") %> 单个图像保存到数据库 上传图片 显示图片


<% if request.ServerVariables("REQUEST_METHOD") = "POST" then dim sCome, sGo, binData, strData dim posB, posE, posSB, posSE dim binCrlf dim strPath, strFileName, strContentType binCrlf = chrb(13)&chrb(10) '定义一个单字节的回车换行符

仓库管理系统数据库设计

仓库管理系统数据库设计 1概述(设计题目与可行性分析) 1.1设计题目 设计一个仓库数据库管理系统,要求实现入库、出库、库存和采购等功能。 随着经济的飞速发展,,仓库管理变成了各大公司日益重要的内容。仓库管理过程的准确性和高效性至关重要。影响着公司的经济发展和管理。利用人工管理强大而数据烦琐的数据库显的效率过于低。利用计算机高效、准确的特点能够很好的满足公司的管理需要。提高公司各个员工的工作效率和公司的运做效率。利用计算机对仓库数据信息进行管理具有着手工管理所无法比拟的优点。目前一个现代化的仓库管理系统已经成为仓库管理不可缺少的管理手段。 1.2 可行性研究 可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究的目的不是解决问题而是分析问题能不能解决;至少从下面三个方面分析可行性研究。 1.2.1技术可行性 该仓库数据库管理系统不不是很复杂,设计实现该数据库技术难度不是很大,利用目前现有的技术和工具能在规定的时间内做出该系统。该系统利用SQL2000和 visual studio 工具就能很好的实现该系统。 1.2.2经济可行性 当今世界是经济时代,一个公司的员工工作效率的高低直接影响着这个公司的发展。因此利用计算机进行信息管理有着无可比拟的好处,该系统相对较小,代码行较少,数据库设计不是很麻烦,开发周期较短。而且便于维护。但其带来的经济效益远远高于其开发成本。在经济上是可行的。 1.2.3操作可行性 在当今社会,随着义务教育的普及。和计算机的普及,公司的员工基本上都会进行电脑的基本操作,由于本软件系统采用相对友好的界面,用户 在使用过程中不需要懂太多的电脑专业知识,只需要基本的电脑操作就可

C# 图片保存到数据库和从数据库读取图片并显示

C# 图片保存到数据库和从数据库读取图片并显示 图片保存到数据库的方法: public void imgToDB(string sql) { //参数sql中要求保存的imge变量名称为@images //调用方法如:imgToDB("update UserPhoto set Photo=@images where UserNo='" + temp + "'"); FileStream fs = File.OpenRead(t_photo.Text); byte[] imageb = new byte[fs.Length]; fs.Read(imageb, 0, imageb.Length); fs.Close(); SqlCommand com3 = new SqlCommand (sql,con); com3.Parameters.Add("@images", SqlDbType.Image).Value = imageb; if (com3.Connection.State == ConnectionState.Closed) com3.Connection.Open(); try { com3.ExecuteNonQuery(); } catch { } finally { com3.Connection.Close(); } } 数据库中读出图片并显示在picturebox中: 方法一: private void ShowImage(string sql) { //调用方法如:ShowImage("select Photo from UserPhoto where UserNo='" + userno +"'"); SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); byte[] b= (byte[])cmd.ExecuteScalar(); if (b.Length 〉0) { MemoryStream stream = new MemoryStream(b, true); stream.Write(b, 0, b.Length); pictureBox1.Image = new Bitmap(stream); stream.Close(); } conn.Close(); }

数据库图书管理系统含代码

数据库图书管理系统含代 码 The following text is amended on 12 November 2020.

目录

一.需求描述和系统边界 数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的数目逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,创建图书管理系统可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。 该图书管理系统支持2类用户:管理员和读者。读者可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和读者的增加,删除和修改以及对读者,借阅、续借、归还的确认。 二.需求分析 1.业务需求 图书管理系统的主要业务包括:包括图书馆内书籍的信息,读者信息,以及借阅信息。此系统功能分为面向读者和面向管理员两部分,其中读者可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和读者的增加,删除和修改以及对读者,借阅、续借、归还的确认。 2.功能需求及数据需求分析 (1)注册管理 管理员注册。管理员注册时要求填写基本信息,包括管理员编号、姓名、性别、联系电话、家庭住址。系统检查所有信息填写正确后管理员注册成功。 读者注册。读者注册时要求填写基本信息,包括读者编号、姓名、性别、联系电话、学院等。系统检查所有信息填写正确后读者注册成功。 (2)图书管理 增加图书信息。当有新的图书入库时,管理员负责添加图书信息,包括书名、分类、图书编号、作者、出版社、出版时间、简介等。

上传图片及存到数据库

1.上传图片到指定的文件夹,并且把图片的路径存到数据库里面。 //判断上传是否有文件 if (FileUpload1.HasFile) { string filepath = FileUpload1.PostedFile.FileName.ToString(); //将图片保存到项目文件夹image里面 string fileName = System.IO.Path.GetFileName(filepath); string savePaht = Server.MapPath("images/" + fileName); FileUpload1.SaveAs(savePaht); string strSql = "insert into userInfo (userimage) values ('"+ filepath+"')"; // string strSql = "insert into userInfo (userimage) values (@image)"; //userInfo 是表名userimage是图片的字段 Sqlconnection conn=new Sqlconnection(@"数据库的连接字符串"); SqlCommand cmd = new SqlCommand(strSql, conn); conn.open(); //cmd.parameters.add("@image",sqldbtype.varchar,100).value="./image"+filepath; cmd.ExecuteNonQuery(); } 2.遍历文件夹里面的图片,显示在datalist里面 //获取图片所在的文件夹的路径 DirectoryInfo imagesfile = new DirectoryInfo(Server.MapPath("./images")); //绑定数据源 DataList1.DataSource = imagesfile.GetFiles("*.jpg"); DataList1.DataBind();

数据库管理系统软件的使用

实验一:数据库管理系统软件的使用 一、实验目的 (1)认识几种常见的数据库管理系统,熟悉它们的使用界面; (2)熟练掌握建立数据库和表,向数据库输入数据、修改数据和删除数据的操作。 二、实验内容 分别在Access和SQL SERVER2005中建立数据库并设计各表,输入多条实际数据,并实现数据的增、删、改操作。 三、实验步骤: 创建用于学生管理数据库,数据库名为XSGL,包含学生的基本信息,课程信息和选课信息。数据库XSGL包含下列3个表: (l)student:学生基本信息。 (2)course:课程信息表。 (3)sc:学生选课表。 各表的结构分别如表1、表2和表3所示。 表1学生信息表:student 表2课程信息表:course 表3学生选课表:sc 1. (a)在Access中创建xsgl.mdb数据库,使用表设计视图创建如表1、表2、表3所示结构的3个表。 提示:(1)启动Access2000或Access2003,选择文件->新建->空数据库,输入数据库文件名xsgl.mdb,进入(2);

图1Access 数据库设计界面 (2)启动如图1的设计界面后,选择表对象和使用使用设计器创建表,选择新建,进入(3);(3)生成如图2界面,选择设计视图,点击确定按钮,进入(4); (4)在图3表设计界面下,分别创建student 表,course 表和sc 表的结构; (5)输入表中的记录: 分别在student 表、course 表和sc 表中输入如下表中的记录: 图2 表设计器 图3表结构设计界面

在数据库视图下,选择表对象中的相应表选择打开,在浏览视图下输入如下表记录: sno sname ssex sage sdept 95001李勇男20CS 95002刘晨女19IS 95003 王敏女18MA 95004张立男19IS 95005 刘云 女 18 CS (b )对表中的记录进行浏览、修改、删除操作。 2.在SQLSERVER 中用企业管理器新建数据库和表:(1)建立xsgl 数据库: ①启动SQL Server2005企业管理器,界面如下: 图4SQL Server2005企业管理器界面 ②选择树形菜单数据库,点击鼠标右键,出现如下弹出式菜单,选择新建数据库 cno cname credit pcno 1数据库452数学63信息系统314操作系统465数据结构476数据处理37 PASCAL 语言 4 6 sno cno grade 9500119295001285950013889500229095002380950032859500415895004 2 85

存储过程_将图片存入数据库

一、写一个存储过程,将图片存入数据库中 基本情况介绍: 数据库版本:oracle 11g 数据库用户:scott 数据库密码:tiger JDK:1.6 要导入的图片:D:\picture\1.jpg --创建存储图片的表 CREATE TABLE IMAGE_LOB (T_ID V ARCHAR2 (5) NOT NULL,T_IMAGE BLOB NOT NULL); --创建存储图片的目录 CREATE OR REPLACE DIRECTORY IMAGES AS 'D:\picture'; 存储过程如下: CREATE OR REPLACE PROCEDURE IMG_INSERT (TID V ARCHAR2,FILENAME V ARCHAR2) AS F_LOB BFILE;--文件类型 B_LOB BLOB; BEGIN iNSERT INTO IMAGE_LOB (T_ID, T_IMAGE) V ALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB; --插入空的blob F_LOB:= BFILENAME ('IMAGES', FILENAME); --获取指定目录下的文件 DBMS_LOB.FILEOPEN(F_LOB, DBMS_LOB.FILE_READONL Y); --以只读的方式打开文件 DBMS_LOB.LOADFROMFILE (B_LOB, F_LOB,DBMS_LOB.GETLENGTH (F_LOB)); --传递对象 DBMS_LOB.FILECLOSE (F_LOB); --关闭原始文件 COMMIT; END;

将数据库中保存的图片缩小的一种方法

在数据库的日常维护中,经常遇到一些小问题需要处理,比如图片的存储,说起来也是我当初程序设计考虑不全。 数据库: SQLServer 2000 程序:Delphi 图片存放字段类型: BLOB 客户只存了不到1000张图片,结果数据库存放空间现在是相当的大了, 因客户端用户上传图片时,小的几M,大的几十M,主要是数码相机照的,最开始时,我的软件没有处理大小, 最近才缩小处理后再保存. 而现在资料库文件就是40多G了 带来问题:查询带图片的功能时很慢,每次备份时很慢,且备份文件也大。以后如果继续增大…… 解决方法:改变数据库中图片的大小, 在保证1024*768的清晰程度下,尽可能小的改变资料库容量。 使用中间图片c:\tmp.jpg取出数据库的图形,按比例缩小,然后保存在数据库中,再收缩数据库。 具体过程: 1.将数据库中图片取出用TADOBlobStream处理。 2.用函数ZoomJpgSize(iLen,iWid,picBlob)等比例缩小。 3.用TADOBlobStream将图片保存回数据库。 4.收缩数据库DBCC SHINKDATABASE('bb001',TRUNCATEONLY) 具体核心代码见附件。 test_ZoomJpg.rar 最后问题得以解决. 最后文件大小从40G下降到了不到1G。 说明: 1.源程序可以继续改进,TADOBlobStream流是否可以转为二进制直接压缩。欢迎交流15196670@https://www.doczj.com/doc/e84620162.html, 2.源程序用c:\tmp.jpg处理几M的图片时速度慢。 3.源程序图片处理可以继续加强,如放大,缩小,导出本地文件,旋转等功能。

数据库学生成绩管理系统E-R图

系统需求分析: 该学生成绩管理系统主要用于管理高校学生的考试成绩,提供学生成绩的录入、修改、查询、等各种功能。成绩由各系的任课老师录入,或教务处人员统一录入。学生成绩录入后由各系系秘书签字确认,只有教务处拥有对学生成绩的修改权限。 用户的具体需求分析: (1)教师:负责成绩的录入,能够在一定的权限对学生的成绩进行查询,可以对自己的登录密码进行修改以及个人信息的修改等基本功能。 (2)系统管理员:与老师的功能相似(每个系都设有一管理员) 另外管理员具有用户管理功能,能够对新上任的老师和新注册的学生行进添加,并能删除已经毕业和退休的老师。用户分为管理员、教师用户、学生用户三类。不论是管理员或教师用户,还是学生用户都需要通过用户名和口令进行登录。用户名采用学生的学号和教师的教号,所以规定只能包括数字。密码也只能是数字,用户只有正确填写用户名和密码才可以登入,进行下一步操作。用户名被注销后,用户将不再拥有任何权限,并且从数据表中删除该用户的信息。 (3)学生:能够实现学生自己成绩和个人信息的查询、登录密码的修改等基本功能。概念模型设计: 由前面的系统需求分析得到实体主要有5个:教师、学生、管理员、课程、成绩。 学生有属性:学号、、性别、系名、专业、出生日期 教师有属性:教师号、、性别、院系、联系 管理员属性:用户名、密码 课程有属性:课程号、课程名、学分、教师 成绩有属性:学号、、课程号、课程名、成绩、授课老师

1)教师与课程之间的关系: 教师与课程之间是1: n的关系,即一个老师只能教一门课程,一门课程可以由多个老师讲授。 (教师与学生E-R图)

2)学生与教师之间的关系: 学生与教师之间是n:m的关系,即一名老师可以教授多个学生,而一个学生可以由多个教师来教。 教师与学生的E-R图

介绍如何将图片存入数据库

本实例主要介绍如何将图片存入数据库。将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类、BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中。主要代码如下: private void button1_Click(object sender, EventArgs e) { openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP"; if(openFileDialog1.ShowDialog()==DialogResult.OK) { string fullpath =openFileDialog1.FileName;//文件路径 FileStream fs = new FileStream(fullpath, FileMode.Open); byte[] imagebytes =new byte[fs.Length]; BinaryReader br = new BinaryReader(fs); imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length)); //打开数据库 SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05"); con.Open(); SqlCommand com = new SqlCommand("insert into tb_08 values(@ImageList)",con); com.Parameters.Add("ImageList", SqlDbType.Image); com.Parameters["ImageList"].Value = imagebytes; com.ExecuteNonQuery(); con.Close(); }

存储图片到SQLSERVER大数据库中

实用标准文档 如何存储图片到SQL SERVER数据库中 SQL Server提供了一个特别的数据类型:image,它是一个包含binary数据的类型。 下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法。在这篇文章中我们要看到如何在SQL Server中存储和读取图片。 1、建立一个表: 在SQL SERVER中建立这样结构的一个表: 列名类型目的 ID Integer主键ID IMGTITLEVarchar(50)图片的标题 IMGTYPEVarchar(50)图片类型. https://www.doczj.com/doc/e84620162.html,要以辨认的类型 IMGDATA Image用于存储二进制数据 2、存储图片到SQL SERVER数据库中 为了能存储到表中,你首先要上传它们到你的WEB服务器上,你可以开发一个webform,它用来将客户端中TextBoxwebcontrol中的图片入到你的WEB服务器上来。将你的encType属性设置为:myltipart/formdata. Stream imgdatastream = File1.PostedFile.InputStream; int imgdatalen = File1.PostedFile.ContentLength; string imgtype = File1.PostedFile.ContentType; string imgtitle = TextBox1.Text; byte[] imgdata = new byte[imgdatalen];

int n = imgdatastream.Read(imgdata,0,imgdatalen); string connstr=((NameValueCollection)Context.GetConfig("appSettings"))["connstr"];S qlConnection connection = new SqlConnection(connstr); SqlCommand command = new SqlCommand ("INSERT INTO ImageStore(imgtitle,imgtype,imgdata) VALUES ( @imgtitle, @imgtype,@imgdata )", connection );SqlParameter paramTitle = new SqlParameter ("@imgtitle", SqlDbType.VarChar,50 ); paramTitle.Value = imgtitle; command.Parameters.Add( paramTitle); SqlParameter paramData = new SqlParameter( "@imgdata", SqlDbType.Image );文案大全 实用标准文档 paramData.Value = imgdata; command.Parameters.Add( paramData ); SqlParameter paramType = new SqlParameter( "@imgtype", SqlDbType.VarChar,50 );paramType.Value = imgtype; command.Parameters.Add( paramType ); connection.Open(); int numRowsAffected = command.ExecuteNonQuery(); connection.Close(); 3、从数据库中恢复读取

图片保存到mysql数据库

在我们设计和制作网站的过程中,有时把图片保存到数据库中要比存成文件的形式更加方便。PHP和MySQL这对黄金组合可以很容易的实现上述功能。在本文中,我们将会向读者介绍如何把图片保存到MySQL数据库中以及如何将数据库中的图片显示出来。 设置数据库 我们通常在数据库中所使用的文本或整数类型的字段和需要用来保存图片的字段的不同之处就在于两者所需要保存的数据量不同。MySQL数据库使用专门的字段来保存大容量的数据,数据类型为BLOB。 MySQL数据库为BLOB做出的定义如下:BLOB数据类型是一种大型的二进制对象,可以保存可变数量的数据。BLOB具有四种类型,分别是TINYBLOB,BLOB, MEDIUMBLOB 和LONGBLOB,区别在于各自所能够保存的最大数据长度不同。 在介绍了所需要使用的数据类型之后,我们可以使用以下语句创建保存图象的数据表。 CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB ); 编写上传脚本 关于如何实现文件的上传,我们在这里就不再介绍了。现在,我

们主要来看一下如何接收上传文件并将其存入到MySQL数据库中。具体的脚本代码如下,其中我们假定文件上传域的名称为Picture。 这样,我们就可以成功的把图片保存到数据库中。如果在将图片插入MySQL的过程中出现问题,可以检查一下MySQL数据库所允许的最大数据包的大小。如果设置值过小的话,我们会在数据库的错误日志中找到相应的记录。 下面,我们简单说明一下上述脚本程序。首先,我们通过“If($Picture != "none")”检查是否有文件被上传。然后,使用addslashes()函数避免出现数据格式错误。最后,连接MySQL,选择数据库并插入图片。 显示图片 在知道了如何将图片存入数据库之后,我们就需要考虑怎样才能从

上传图片及存到大数据库

实用标准文案 1.上传图片到指定的文件夹,并且把图片的路径存到数据库里面。 //判断上传是否有文件 if (FileUpload1.HasFile) { string filepath = FileUpload1.PostedFile.FileName.ToString(); //将图片保存到项目文件夹image里面 string fileName = System.IO.Path.GetFileName(filepath); string savePaht = Server.MapPath("images/" + fileName); FileUpload1.SaveAs(savePaht); string strSql = "insert into userInfo (userimage) values ('"+ filepath+"')"; // string strSql = "insert into userInfo (userimage) values (@image)"; //userInfo 是表名 userimage是图片的字段 Sqlconnection conn=new Sqlconnection(@"数据库的连接字符串"); SqlCommand cmd = new SqlCommand(strSql, conn); conn.open(); //cmd.parameters.add("@image",sqldbtype.varchar,100).value="./image"+filepath; cmd.ExecuteNonQuery(); } 2.遍历文件夹里面的图片,显示在datalist里面 //获取图片所在的文件夹的路径 DirectoryInfo imagesfile = new DirectoryInfo(Server.MapPath("./images")); //绑定数据源 DataList1.DataSource = imagesfile.GetFiles("*.jpg"); DataList1.DataBind(); 精彩文档

数据库学生成绩管理系统E-R图

数据库学生成绩管理系统E-R图

系统需求分析: 该学生成绩管理系统主要用于管理高校学生的考试成绩,提供学生成绩的录入、修改、查询、等各种功能。成绩由各系的任课老师录入,或教务处人员统一录入。学生成绩录入后由各系系秘书签字确认,只有教务处拥有对学生成绩的修改权限。 用户的具体需求分析: (1)教师:负责成绩的录入,能够在一定的权限内对学生的成绩进行查询,可以对自己的登录密码进行修改以及个人信息的修改等基本功能。(2)系统管理员:与老师的功能相似(每个系都设有一管理员) 另外管理员具有用户管理功能,能够对新上任的老师和新注册的学生行进添加,并能删除已经毕业和退休的老师。用户分为管理员、教师用户、学生用户三类。不论是管理员或教师用户,还是学生用户都需要通过用户名和口令进行登录。用户名采用学生的学号和教师的教号,所以规定只能包括数字。密码也只能是数字,用户只有正确填写用户名和密码才可以登入,进行下一步操作。用户名被注销后,用户将不再拥有任何权限,

并且从数据表中删除该用户的信息。 (3)学生:能够实现学生自己成绩和个人信息的查询、登录密码的修改等基本功能。 概念模型设计: 由前面的系统需求分析得到实体主要有5个:教师、学生、管理员、课程、成绩。 学生有属性:学号、姓名、性别、系名、专业、出生日期 教师有属性:教师号、姓名、性别、院系、联系电话 管理员属性:用户名、密码 课程有属性:课程号、课程名、学分、教师 成绩有属性:学号、姓名、课程号、课程名、成绩、授课老师 1)教师与课程之间的关系: 教师与课程之间是1: n的关系,即一个老师只能教一门课程,一门课程可以由多个老师讲

大数据库存储图片教程

数据库存储图片(MsSQL/ORACLE/ACCESS) (2009-05-24 16:34:01) 转载 标签: 分类:C#开发 it 下面我来汇总一下如何将图片保存到SqlServer、Oracle、Access数据库中。首先,我们要明白图片是以二进制的形式保存在数据库中的,那么把图片保存到数据库中的步骤大体上有这几步 1.将图片转换为二进制数组(byte[]); 2.把转换后的二进制数组(byte[])作为参数传递给要执行的Command; 3.执行Command; 首先,如何把图片转换成byte[],如果你使用的是https://www.doczj.com/doc/e84620162.html,2.0,那么你可以使用FileUpLoad控件来实现 byte[] fileData = this.FileUpload1.FileBytes; 如果你用的是https://www.doczj.com/doc/e84620162.html,1.1或者你在创建WinForm那么你可以使用下面的方法来把图片转换为byte[] public byte[] getBytes(string filePath) { System.IO.FileStream fs = new System.IO.FileStream(filePath,

System.IO.FileMode.Open); byte[] imgData = new byte[fs.Length]; fs.Read(imgData, 0, (int)fs.Length); return imgData; }接下来我们要做的就是要把已经得到的byte[]作为参数传递给Command对象 1.SqlServer数据库。SqlServer有Image字段类型,最大可以存储2G的数据。byte[] fileData = this.FileUpload1.FileBytes; string sql = "insert into t_img(img) values (@img)"; string strconn = System.Configuration.ConfigurationManager.ConnectionStrings["fengd ongDB"].ToString(); SqlConnection sqlConn = new SqlConnection(strconn); SqlCommand sqlComm = new SqlCommand(sql, sqlConn); sqlComm.Parameters.Add("@img", SqlDbType.Image);//添加参数sqlComm.Parameters["@img"].Value = fileData;//为参数赋值 sqlConn.Open(); sqlComm.ExecuteNonQuery(); sqlConn.Close(); 2.Oracle数据库。在Oracle数据库中我们可以使用BLOB字段类型,最大可以

数据库管理系统设计

后台主界面及功能说明: 图1 2.1、基本设置:在基本设置中可以对商品信息、商品调价、供货商、客户、员工、操作员、会员、仓库进行设置 2.1.1、商品信息

在基本设置模块中点击“商品信息”进入商品信息界面如图 2 图 2 在商品信息窗口中左边是商品类别,右边列表中是该类别对应的商品。在某一类别上点击鼠标右键,可以新增类别,重命名和删除类别。新增的类别是属于所选类别的下一级,如果类别下有商品存在则该类别是不能被删除的。在类别名称后的文本框中可以输入类别名称或类别简码来查询需要的类别。 在商品列表中点击“增加”按钮打开增加商品界面如图

3 图 3 在商品信息这一部分输入新增商品的所有信息,点击“保存”按钮即可把该商品保存到右边的已存商品中,保存后可以继续输入下一种商品。在“已存商品”中可以点击鼠标右键对选中的商品进行删除或删除全部已存的商品。如果商品增加完后可以直接点“退出”按钮。退出增加商品窗口后会在商品列表中看刚才增加的商品。如果要修改商品,先选中要修改的商品,点击“修改”按钮打开商品修改界面,在商品修改界面中修改相应的信息点击“保存”即可。点击“删除”按钮即可以把选中的商品删除,该商品发生过业务则是不能删除的。 如何建立期初库存商品,在系统中如果没有进行业务来往,当点击“商品信息”按钮的时候,系统会提示是打开商品信息还是建立期初库存商品粮。打开库存商品期初建帐窗口如图4。

图4 在窗口中的商品信息中可以看到所有已经增加过的商品信息,在右边的库库商品中选择仓库,可以看到该仓库中的商品。在商品信息中可以选择中一种商品点击“增加到仓库” 在出现的窗口中输入期初数据和成本价,这样就可以建立该商品在指定仓库的初期帐。 2.1.2、供货商设置

相关主题
文本预览
相关文档 最新文档