1、新建一个数据库,数据库名为Image,表名为image。并为表添加ID,tupian两个列。
2、新建一个项目(Photo),在工具箱中往窗体中拖入一个PictureBox控件,两个Button按钮,一个OpenFileDialog控件。并修改pictureBox1控件的属性BorderStyle为FixedSingle,SizeMode为StretchImage;修改两个button控件属性的Text值依次为”打开一张图片”“插入数据库”。
3、首先打开“数据“选择“添加新数据源”,然后(数据库)下一步,(数据集)下一步,选择”新建连接“,依次选择服务器名,服务器验证方式,选择”选择或输入一个数据库名。
4、选择”选择或输入一个数据库名,添加刚刚新建的数据库,然后点击“测试连接”,看看数据库连接是否成功。成功后点“确定”回到“数据源配置向导”页面,将“连接字符串复制下来。
5、添加两条using命名空间 using System.IO using System.Data.SqlClient作用为读取二进制数据流,用于数据库的连接。
6、编辑Button按钮“打开一张图片”的Click事件。
7、编写Button按钮“插入数据库:的Click事件。
图片保存在数据库中有两种方式:1.看一下字段的字段类型,如果是二进制(image)的就要将图片进行二进制转换
2.如果是字符串型(nvarchar)的,则直接保存图片路径,然后将图片拷到那个路径下即可.
一般图片都是只存路径的,存二进制占数据库空间,会导致数据库过大
第一步://获取当前选择的图片this.pictureBox1.Image = Image.FromStream(this.openFileDialog1.OpenFile())//获取当前图片的路径string path = openFileDialog1.FileName.ToString()//将制定路径的图片添加到FileStream类中FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read)//通过FileStream对象实例化BinaryReader对象BinaryReader br = new BinaryReader(fs)//通过BinaryReader类对象的ReadBytes()方法将FileStream类对象转化为二进制数组byte[] imgBytesIn = br.ReadBytes(Convert.ToInt32(fs.Length))第二步://将图片添加到数据库中string sql="insert into pic values(@pic)"SqlParameter[] param = new SqlParameter[] { new SqlParameter("@pic", imgBytesIn) }DBHelper.GetExecuteQuery(sql, param)第三步://将图片从数据库中取出string sql="select * from pic where id=0"SqlDataReader reader = DBHelper.GetExecuteReader(sql, null)MemoryStream mss = null欢迎分享,转载请注明来源:内存溢出
评论列表(0条)