如何将图片插入到数据库中
存储过程_将图片存入数据库

一、写一个存储过程,将图片存入数据库中基本情况介绍:数据库版本:oracle 11g数据库用户:scott数据库密码:tigerJDK: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) ASF_LOB BFILE;--文件类型B_LOB BLOB;BEGINiNSERT INTO IMAGE_LOB (T_ID, T_IMAGE)V ALUES (TID,EMPTY_BLOB ()) RETURN T_IMAGE INTO B_LOB;--插入空的blobF_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;--将该图片存入表call IMG_INSERT('1','1.gif'); 验证一下是否已存入:二、从数据库读取图片并显示在页面上项目名称为ShowPhoto启动Tomcat,在浏览器输入:http://localhost:8080/ShowPhoto/,显示如下:。
图片保存到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。
<? If($Picture != "none") { $PSize = filesize($Picture); $mysqlPicture = addslashes(fread (fopen($Picture, "r"), $PSize)); mysql_connect($host,$username,$password) or die("Unable to connect to SQL server"); @mysql_select_db($db) or die("Unable to select database"); mysql_query("INSERT INTO Images (Image) VALUES '($mysqlPicture')") or die("Can't Perform Query"); } else { echo"You did not upload any picture"; } ?>这样,我们就可以成功的把图片保存到数据库中。
将图片储存在MySQL数据库中的几种方法

将图⽚储存在MySQL数据库中的⼏种⽅法通常对⽤户上传的图⽚需要保存到数据库中。
解决⽅法⼀般有两种:1、将图⽚保存的路径存储到数据库;2、将图⽚以⼆进制数据流的形式直接写⼊数据库字段中。
以下为具体⽅法:⼀、保存图⽚的上传路径到数据库: string uppath="";//⽤于保存图⽚上传路径 //获取上传图⽚的⽂件名 string fileFullname = this.FileUpload1.FileName; //获取图⽚上传的时间,以时间作为图⽚的名字可以防⽌图⽚重名 string dataName = DateTime.Now.ToString("yyyyMMddhhmmss"); //获取图⽚的⽂件名(不含扩展名) string fileName = fileFullname.Substring(stIndexOf("\\") + 1); //获取图⽚扩展名 string type = fileFullname.Substring(stIndexOf(".") + 1); //判断是否为要求的格式 if (type == "bmp" || type == "jpg" || type == "jpeg" || type == "gif" || type == "JPG" || type == "JPEG" || type == "BMP" || type == "GIF") { //将图⽚上传到指定路径的⽂件夹 this.FileUpload1.SaveAs(Server.MapPath("~/upload") + "\\" + dataName + "." + type); //将路径保存到变量,将该变量的值保存到数据库相应字段即可 uppath = "~/upload/" + dataName + "." + type; }⼆、将图⽚以⼆进制数据流直接保存到数据库:引⽤如下命名空间:using System.Drawing; using System.IO; using System.Data.SqlClient; 设计数据库时,表中相应的字段类型为iamge 保存: //图⽚路径 string strPath = this.FileUpload1.PostedFile.FileName.ToString (); //读取图⽚ FileStream fs = new System.IO.FileStream(strPath, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); byte[] photo = br.ReadBytes((int)fs.Length); br.Close(); fs.Close(); //存⼊ SqlConnection myConn = new SqlConnection("Data Source=.;Initial Catalog=stumanage;User ID=sa;Password=123"); string strComm = " INSERT INTO stuInfo(stuid,stuimage) VALUES(107,@photoBinary )";//操作数据库语句根据需要修改 SqlCommand myComm = new SqlCommand(strComm, myConn); myComm.Parameters.Add("@photoBinary", SqlDbType.Binary, photo.Length); myComm.Parameters["@photoBinary"].Value = photo; myConn.Open(); if (myComm.ExecuteNonQuery() > 0) { bel1.Text = "ok"; } myConn.Close(); 读取: ...连接数据库字符串省略 mycon.Open(); SqlCommand command = new SqlCommand("select stuimage from stuInfo where stuid=107", mycon);//查询语句根据需要修改 byte[] image = (byte[])command.ExecuteScalar (); //指定从数据库读取出来的图⽚的保存路径及名字 string strPath = "~/Upload/zhangsan.JPG"; string strPhotoPath = Server.MapPath(strPath); //按上⾯的路径与名字保存图⽚⽂件 BinaryWriter bw = new BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate)); bw.Write(image); bw.Close(); //显⽰图⽚ this.Image1.ImageUrl = strPath; //采⽤这两种⽅式可以根据实际需求灵活选择。
如何使用MySQL进行图像和多媒体数据的存储

如何使用MySQL进行图像和多媒体数据的存储MySQL是一种常用的关系型数据库管理系统,广泛应用于各种应用和领域。
它提供了丰富的功能和灵活的存储选项,包括图像和多媒体数据的存储。
本文将探讨如何使用MySQL来有效地存储和管理图像和多媒体数据,以提高应用程序的性能和用户体验。
1. 导入图像和多媒体数据在MySQL中存储图像和多媒体数据的第一步是将这些数据导入到数据库中。
可以通过多种方式实现这一目标,其中一种常用的方法是使用BLOB类型。
BLOB是Binary Large Object的缩写,它允许将二进制数据以字节的形式存储在数据库中。
为了导入图像和多媒体数据,可以使用MySQL提供的LOAD_FILE()函数。
该函数可以将文件中的数据读取为二进制字符串,并将其插入到BLOB列中。
下面是一个示例代码:```INSERT INTO media_data (id, data)VALUES (1, LOAD_FILE('/path/to/image.jpg'));```在上述示例中,media_data是包含BLOB列的表名,id是数据的唯一标识符,data是BLOB列的名称。
通过指定正确的文件路径,可以将图像或多媒体文件插入到数据库中。
2. 使用合适的数据类型和存储格式除了BLOB类型外,MySQL还提供了其他几种数据类型和存储格式,用于存储图像和多媒体数据。
选择正确的数据类型和存储格式可以提高存储效率和访问性能。
一种常见的选择是使用VARCHAR类型存储图像和多媒体数据的URL或文件路径。
通过存储URL或文件路径,可以避免在数据库中存储大型二进制数据。
这种方法适用于将图像和多媒体数据存储在文件系统中,而不是直接存储在数据库中。
另一种选择是使用MEDIUMBLOB或LONGBLOB类型存储二进制数据。
MEDIUMBLOB可以存储最大为16MB的二进制数据,而LONGBLOB可以存储最大为4GB的二进制数据。
图片存入mySql数据库

我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用jsp怎样向数据库写入图像文件。
大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的只要大家将连接数据库的参数改一下就可以了。
SQL>create table image(id int,content varchar(200),image blob);如果在sqlserver2000的数据库中,可以将blob字段换为image类型,这在SqlServer2000中是新增的。
testimage.html文件内容如下:<HTML><HEAD><TITLE>Image File </TITLE><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></HEAD><FORM METHOD=POST ACTION="testimage.jsp"><INPUT TYPE="text" NAME="content"><BR><INPUT TYPE="file" NAME="image"><BR><INPUT TYPE="submit"></FORM><BODY></BODY></HTML>我们在Form的action里定义了一个动作testimage.jsp,它的内容如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*" %><%@ page import="java.util.*"%><%@ page import="java.text.*"%><%@ page import="java.io.*"%><html><body><%Class.forName("org.gjt.mm.mysql.Driver").newInstance();Stringurl="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding= 8859_1";//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改Connection conn= DriverManager.getConnection(url);String content=request.getParameter("content");String filename=request.getParameter("image");FileInputStream str=new FileInputStream(filename);String sql="insert into test(id,content,image) values(1,?,?)"; PreparedStatement pstmt=dbconn.conn.prepareStatement(sql);pstmt.setString(1,content);pstmt.setBinaryStream(2,str,str.available());pstmt.execute();out.println("Success,You Have Insert an Image Successfully");%>下面我写一个测试image输出的例子看我们上面程序写的对不对,testimageout.jsp的内容如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*" %><%@ page import="java.util.*"%><%@ page import="java.text.*"%><%@ page import="java.io.*"%><html><body><%Class.forName("org.gjt.mm.mysql.Driver").newInstance();Stringurl="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding= 8859_1";//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改Connection conn= DriverManager.getConnection(url);String sql = "select image from test where id=1";Statement stmt=null;ResultSet rs=null;try{stmt=conn.createStatement();rs=stmt.executeQuery(sql);}catch(SQLException e){}try {while(rs.next()) {res.setContentType("image/jpeg");ServletOutputStream sout = response.getOutputStream();InputStream in = rs.getBinaryStream(1);byte b[] = new byte[0x7a120];for(int i = in.read(b); i != -1;){sout.write(b);in.read(b);}sout.flush();sout.close();}}catch(Exception e){System.out.println(e);}%></body></html>你运行这个程序,你就会看到刚才你写入美丽的图片就会显示在你面前。
php插入和显示数据库中的图片

php插入和显示数据库中的图片(处理二进制数据)插入和显示数据库中的图片(处理二进制数据)数据库应用程序,特别是基于Web的数据库应用程序,常常会涉及到图片信息的存储和显示。
通常我们使用的方法是将所要显示的图片存在特定的目录下,在数据库中保存相应的图片的名称,然后在PHP中查询数据库获得文件路径并在HTML 文件中引用。
但是,如果我们想动态的显示图片,上述方法就不能满足需要了。
因此必须把图片存入数据库,然后通过编程动态地显示我们需要的图片。
在实际操作中,可以利用PHP将图片插入到数据库中,在数据库中,图片是以二进制格式存储的。
随后你也可以使用PHP将图片数据读出来并显示在网页上。
使用HTML表单可以将客户端的图片文件作为请求传递给服务端,PHP可以读取请求中的上载文件数据,并将数据保存在数据库中。
1.将图片插入数据库下面我们就来看一个范例,了解怎样使用表单提交图片文件,并保存到数据库中。
这个范例有两个文件组成。
upload.htm这个网页包含一个表单,用于提交图片文件,它的代码如下:代码清单7-6<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><title>提交表单</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> </head> <body><form action="insertPic.php" method="post" enctype="multipart/form-data" name="mainForm" id="mainForm"><input type="file" name="myFile" /><br /><input type="submit" name="Submit" value="Submit"/></form></body></html> 保存到Web根目录下,在浏览器中请求,可以看到如图7-33所示的效果:图7-33 文件上传表单insertPic.php这个文件用来将提交的文件数据保存到数据库中,代码如下:代码清单7-7<?php//由于上传过来的图片被保存在一个临时文件中,所以//我们仅需要读取该文件就可以获取传过来的图片$fp = fopen($_FILES["myFile"]["tmp_name"],"rb");$buf = addslashes(fread($fp,$_FILES["myFile"]["size"]));//创建一个PDO对象$dbh = new PDO("mysql:host=localhost;port=3306;dbname=myDatabase", "root", "verysecret");//执行插入操作并将结果保存在一个变量中$result = $dbh->query("INSERT INTO employees(firstName,lastName,EmpType,age,picture) VALUES('myFirst','myLast','myEmpType',50,'$buf')");//获取影响的行数if ($result->rowCount() >0) {echo("数据已插入。
如何将图片保存到SqlServer、Oracle、Access数据库中。-懒猫星空--...

如何将图片保存到SqlServer、Oracle、Access数据库中。
-懒猫星空--...如何将图片保存到SqlServer、Oracle、Access数据库中。
首先,我们要明白图片是以二进制的形式保存在数据库中的,那么把图片保存到数据库中的步骤大体上有这几步1.将图片转换为二进制数组(byte[]);2.把转换后的二进制数组(byte[])作为参数传递给要执行的Command;3.执行Command;首先,如何把图片转换成byte[],如果你使用的是2.0,那么你可以使用FileUpLoad控件来实现byte[] fileData = this.FileUpload1.FileBytes;如果你用的是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;}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[ "fengdongDB"].T oString();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数据库。
数据库存图片的几种方式

问题:数据库与照片/图片/文件的关系如何处理?也就是,比如有照片若干,怎样能在数据库中存储并显示?方法一:把照片放进数据库,照片的格式最好是bmp,这样就可以在窗体上显示出来,不过这样数据库的体积会暴增。
详细的使用方法请参考Access帮助中的PictureData 属性(本文末尾有相关帮助)。
而且,你可以直接用commdlg API 函数来给图像框赋值,然后直接读取某个图像框的PICTUREDATA 并存储到某个IMAGE 字段中。
这样做的优点是显示、读取方便,缺点是如果图片精度高,占用的硬盘空间会爆大。
详细示例请参考:/down/eg/OLEfieldAndPictureData.rar(46KB)方法二:设一个OLE字段,然后插入对象就行了(对着字段单击右键)。
但是要注意的是,用上述方法加入数据库的图片只能以手动方式保存,需要用程序读取的时候会碰到存储在ole字段中二进制数据与源文件不符的情况。
主要是因为ole引擎在图片的前面加了一段信息给他自己用。
请参考:/index.asp?board=4&mode=3&recordid=75FAB21E12DC方法三:将图片文件以二进制方式存储在数据库中,使用时调用。
详细情况请参考:使用ADO 的STREAM 对象的LoadFromFile 方法以及SaveToFile 方法实现:/index.asp?board=4&mode=3&recordid=74FAB51E13DC使用ADO 的RECORDSET.FIELD 对象的GetChunk 以及AppendChunk 方法实现:/index.asp?board=4&mode=3&recordid=75FAB01EASP 中使用的方法:/index.asp?board=4&mode=3&recordid=79FAB31E下列例程就是采用这种方法,在显示的时候把长二进制数据保存为临时文件用于显示/down/photo.rar(size=308K)方法四:不把照片放入数据库,只把照片的路径保存到数据库中,动态加载,这样可以支持很多种图片格式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试验十数据库编程1、新建项目项目名称为“dbgl”。
2、设计如下窗体:窗体上放置的控件有:7个按钮,一个groupBox,4个label,4个textBox,1个pictureBox和1个dataGridView。
3、编写连接数据库的类鼠标单击菜单栏上的“项目”选择“项目”菜单中的“添加类”命令,为“dbgl”项目添加连接数据库的类,类名是:DbConnection。
如下图所示:DbConnection类的代码如下图所示:注意需要引入System.Data.SqlClient名称空间。
4、编写操作数据的类为“dbgl”项目添加操作数据的类,该类名为“DbOperation”。
首先,实例化“DbConnection”类,代码如下:其次,编写方法getdataset,该方法返回一个DataSet对象的数据集。
代码如下:接着编写执行SQL语句的方法“sqlcmd”。
该方法的代码如下:最后编写方法“GetTable”,该方法用于返回一个DataTable类型的数据。
代码如下:5、为窗体编写代码,完成对数据库操作的功能。
在窗体的代码视图中:(1)定义一个窗体级别的BindingManagerBase类变量mybind用来管理多个控件绑定到一个数据源,以便实现同步操作。
代码如下:(2)在窗体的Load事件中编写,为相关控件绑定相数据。
代码如下:(3)为“第一条”按钮控件编写代码:代码如下图所示:(4)为“下一条”按钮控件编写代码:代码如下图所示:(5)为“上一条”按钮控件编写代码:代码如下图所示:(6)为“最后一条”按钮控件编写代码:代码(略)。
自己编写(7)给“新增”按钮编写代码,完成添加一条记录首先,给项目添加一个窗体,窗体名称为“FormBase”。
窗体中设计界面如下:该窗体的代码如下:1)引入红色框内的名称空间:2)定义窗体级变量,用来表示图片,代码如红色框内:3)编写显示图片的方法:代码如下:4)为“添加照片”的标签的单击事件编写如下代码:*以下是新增的内容****************************************** 为了防止用户连续单击“确定”按钮而引发异常,我们需要修改上面的代码:修改的思路是一旦数据保存成功,就清空文本框的值。
具体代码如下:注意新增6、为“关闭”按钮编写如下代码,实现窗口关闭private void button2_Click(object sender, EventArgs e){this.Close();}7、当用户添加完数据,关闭窗口。
主窗口应该重新检索数据,把新增的数据显示出来。
为了实现该功能,我们返回到主窗口,找到打开FormBase窗口的代码:即:private void button1_Click(object sender, EventArgs e){FormBase fb = new FormBase();fb.ShowDialog();}修改上面的代码:修改后的代码:FormBase fb = new FormBase();fb.ShowDialog();if (fb.ShowDialog() == DialogResult.Cancel){//重新绑定数据DbOperation dbopt = new DbOperation();string sql = "select * from 学生信息表";DataTable db = dbopt.GetTable(sql);dataGridView1.DataSource = db;//当单击某一单元格时,选中该行this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; mybind = this.BindingContext[db];this.textBox1.DataBindings.Clear();this.textBox2.DataBindings.Clear();this.textBox3.DataBindings.Clear();this.textBox4.DataBindings.Clear();this.textBox1.DataBindings.Add("text", db, "学号");this.textBox2.DataBindings.Add("text", db, "姓名");this.textBox3.DataBindings.Add("text", db, "系别");this.textBox4.DataBindings.Add("text", db, "借书证号");//this.pictureBox1.DataBindings.Add("text", db, "照片");}8、在主窗口中为了能够正确显示图片,我们需要增加一个imageview()方法来显示图片。
该方法属于窗体。
方法的代码如下:private void imageview(){pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;//图片显示模式DbConnection connstr = new DbConnection();SqlConnection conn = connstr.getcon();conn.Open();SqlCommand cmd = new SqlCommand("select 照片 from 学生信息表 where 学号='" + this.textBox1.Text.Trim() + "'", conn);try{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();}else{pictureBox1.Refresh();}}catch{}finally{cmd.Connection.Close();conn.Close();}}有了该方法后,我们需要在其他地方调用该方法。
需要调用的地方有:注意要加代码的地方已经加粗。
(1)private void Form1_Load(object sender, EventArgs e){//为dataGridView1绑定数据DbOperation dbopt = new DbOperation();string sql = "select * from 学生信息表";DataTable db = dbopt.GetTable(sql);dataGridView1.DataSource = db;//当单击某一单元格时,选中该行this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;mybind = this.BindingContext[db];this.textBox1.DataBindings.Add("text", db, "学号");this.textBox2.DataBindings.Add("text", db, "姓名");this.textBox3.DataBindings.Add("text", db, "系别");this.textBox4.DataBindings.Add("text", db, "借书证号");//this.pictureBox1.DataBindings.Add("text", db, "照片");imageview();}(2)private void button4_Click(object sender, EventArgs e){pictureBox1.Image = null;if (mybind.Position == 0){MessageBox.Show("已经是第一条了!");return;}else{mybind.Position = 0;imageview();}}private void button5_Click(object sender, EventArgs e) {pictureBox1.Image = null;if (mybind.Position == (mybind.Count-1)){MessageBox.Show("已经是最后一条了!");return;}else{mybind.Position = mybind.Position+1;imageview();}}private void button6_Click(object sender, EventArgs e) {pictureBox1.Image = null;if (mybind.Position == 0){MessageBox.Show("已经是第一条了!");return;}else{mybind.Position = mybind.Position - 1;imageview();}}(3)private void button1_Click(object sender, EventArgs e){FormBase fb = new FormBase();fb.ShowDialog();if (fb.ShowDialog() == DialogResult.Cancel){//重新绑定数据DbOperation dbopt = new DbOperation();string sql = "select * from 学生信息表";DataTable db = dbopt.GetTable(sql);dataGridView1.DataSource = db;//当单击某一单元格时,选中该行this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; mybind = this.BindingContext[db];this.textBox1.DataBindings.Clear();this.textBox2.DataBindings.Clear();this.textBox3.DataBindings.Clear();this.textBox4.DataBindings.Clear();this.textBox1.DataBindings.Add("text", db, "学号");this.textBox2.DataBindings.Add("text", db, "姓名");this.textBox3.DataBindings.Add("text", db, "系别");this.textBox4.DataBindings.Add("text", db, "借书证号");imageview();}}到目前为止,添加记录已经差不多了,如果还bug的话,希望同学们自己动手去修改。