小谈c#数据库存取图片的方式

第一种方式   文件夹与数据库配合

/// <summary>/// 上传图片/// </summary>/// <param name="FUSShopURL">FileUpload对象</param>/// <param name="UpladURL">图片要放到的目录名称</param>/// <returns>如果FileUpload不为空则返回上传后的图片位置,否则返回为空字符</returns>public  static  string  uploadImage(FileUpload FUSShopURL, string UpladURL){if (FUSShopURL.HasFile){//获取当前的时间,一当作图片的名字string fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond.ToString();//获取图片的扩展名string Extent = System.IO.Path.GetExtension(FUSShopURL.PostedFile.FileName);//重命名图片fileName += Extent;//设置上传图片保存的文件夹string dir = System.Web.HttpContext.Current.Server.MapPath(UpladURL);//指定图片的路径及文件名string path = dir + "\\" + fileName;//把上传得图片保存到指定的文件加中
            FUSShopURL.PostedFile.SaveAs(path);return  fileName;}else{return "";}}

第二种方式    直接把图片的Base64String码进行存取

//选择图片private void button1_Click(object sender, EventArgs e){OpenFileDialog openfile = new OpenFileDialog();openfile.Title = "请选择客户端longin的图片";openfile.Filter = "Login图片(*.jpg;*.bmp;*png)|*.jpeg;*.jpg;*.bmp;*.png|AllFiles(*.*)|*.*";if (DialogResult.OK == openfile.ShowDialog()){try{Bitmap bmp = new Bitmap(openfile.FileName);pictureBox1.Image = bmp;pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;MemoryStream ms = new MemoryStream();bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);byte[] arr = new byte[ms.Length];ms.Position = 0;ms.Read(arr, 0, (int)ms.Length);ms.Close();//直接返这个值放到数据就行了pic = Convert.ToBase64String(arr);}catch { }}}

读取的方法也很简单, pic就是我们得到的图片字符串只要我们存储到数据库里,从下面的方法里读取就可以了

//加载图片private void Form1_Load(object sender, EventArgs e){try{// pic=........这一句换成从数据库里读取就可以了//判断是否为空,为空时的不执行if (!string.IsNullOrEmpty(pic)){//直接返Base64码转成数组byte[] imageBytes = Convert.FromBase64String(pic);//读入MemoryStream对象MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);memoryStream.Write(imageBytes, 0, imageBytes.Length);//转成图片Image image = Image.FromStream(memoryStream);//memoryStream.Close();//不要加上这一句否则就不对了// 将图片放置在 PictureBox 中this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;this.pictureBox1.Image = image;}}catch { }}

第三种方式   读成二进制后进行存取

private void button1_Click(object sender, EventArgs e){OpenFileDialog openfile = new OpenFileDialog();openfile.Title = "请选择客户端longin的图片";openfile.Filter = "Login图片(*.jpg;*.bmp;*png)|*.jpeg;*.jpg;*.bmp;*.png|AllFiles(*.*)|*.*";if (DialogResult.OK == openfile.ShowDialog()){try{//读成二进制byte[] bytes = File.ReadAllBytes(openfile.FileName);//直接返这个存储到数据就行了cmd.Parameters.Add("@image", SqlDbType.Image).Value = bytes;//输出二进制  在这里把数据中取到的值放在这里byte[] bytes=(byte[])model.image;pictureBox1.Image = System.Drawing.Image.FromStream(new MemoryStream(bytes));this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;// 如果保存成文件:File.WriteAllBytes(@"d:\text.jpg", bytes);}catch { }}}

 

转载于:https://www.cnblogs.com/vaevvaev/p/7206737.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#课程设计简单题目_《C#项目案例》课程设计题目

1《C#项目案例》课程设计题目一、课程设计的基本目标1、通过本次课程设计&#xff0c;熟练掌握开发语言C#和开发环境——.NET。开发语言的熟练需要通过编写一定长度的代码(1000&#xff5e;2000行代码)才能达到&#xff0c;开发环境的熟练需要反复的程序调试训练。2、加深对软件…

笔记吧

map的第一个为关键值&#xff0c;只可读&#xff0c;不可写。第二个为对应值&#xff1b;vector的消除有很大的困扰&#xff0c;感觉存在很大的局限性&#xff1b;问题——不能够复杂话&#xff0c;一个问题先从较浅的方面想起&#xff0c;其实在现有基础和请况下&#xff0c;不…

单例设计模式-静态内部类

静态内部类 静态内部类应用实例 代码演示 package com.atguigu.principle.singleton.type07;/** * author victor * site https://victorfengming.github.io/ * company XDL * project java_mode * package com.atguigu.principle.singleton.type07 * created 2021-02-02 20…

Symbian系统开发教程(二)

第二章&#xff1a;数据类型与语法 作者&#xff1a;谢兴 enigma19971hotmail.com 转载需注明出处 下载word版本 Symbian系统已经提供了一套已经定义好的内置的数据类型。为了保证你的代码是编译器无关的&#xff0c;应当使用下面symbian系统提供的数…

design php 如何使用ant_Ant Design Pro初探—添加面包屑

Ant Design Pro初探—添加面包屑上次咱们说了新建页面&#xff01;页面建成了&#xff0c;开始填充页面 新建面页面不会的看上一片文章:Ant Design Pro初探—新建页面首先是需要添加家面包屑&#xff0c;上代码&#xff1a;import React, { PureComponent } from react;import …

C++主要操作符重载的定义和总结

C中预定义的运算符的操作对象只能是基本数据类型&#xff0c;实际上&#xff0c;对于很多用户自定义类型&#xff0c;也需要有类似的运算操作。例如&#xff1a; class complex { public: complex(double r0.0,double I0.0){realr;imagI;} void display(); private: do…

原生JS数组去重的几种方法

有时候我们做项目的时候往往会需要把数组里面一些重复的项去掉&#xff0c;但是原生JS有排序&#xff0c;有筛选等等&#xff0c;但是就是没有数组去重怎么办呢&#xff1f;这能怎么办&#xff0c;自己手动实现嘛。&#xff08;以下代码直接在原型上添加的的方法&#xff0c;为…

单例设计模式-枚举

枚举 枚举应用实例 代码演示 package com.atguigu.principle.singleton.type08;/** */ public class SingletonTest08 {public static void main(String[] args) {Singleton instance Singleton.INSTANCE;Singleton instance2 Singleton.INSTANCE;System.out.println(inst…

抛物线交点式公式_抛物线交点式

以下是范文网www zhuodaoren com 分享的6 已知抛物线与轴两交点在轴同侧&#xff0c;它们的距离的平方等于&#xff0c;则的值为( )&#xff0c;希望能帮助到大家!(一)6 已知抛物线与轴两交点在轴同侧&#xff0c;它们的距离的平方等于&#xff0c;则的值为( )函数与一元二次方…

学习的动力

要有自学的意识&#xff0c;这是一个知识不断更新、不断涌现的时代&#xff0c;大学里的很多知识是过时的&#xff0c;就算入校时是热门行业的但很可能四年后毕业找工作时已经变成了夕阳产业&#xff0c;学习是一种能力&#xff0c;但首先是一种态度&#xff0c;一个人想在快速…

java面向对象之父类的引用指向子类的对象

1 package Text; 2 3 public class Job { 4 public void dowork(){ 5 6 } 7 } 1 package Text; 2 3 public class Luosidao extends Job{ 4 public void dowork(){ 5 System.out.println("螺丝刀拧螺丝。。。"); 6 } 7 } 1 packa…

单例模式在JDK应用的源码分析

单例模式在JDK应用的源码分析 单例模式在jdk中的源码分析 在我们JDK中,java.lang.Runtime就是经典的单例模式(恶汉式) 代码分析Debug源码代码说明 public class Runtime {private static Runtime currentRuntime new Runtime();/*** Returns the runtime object associate…

lisp语言cond和if套用_LISP - 决策

决策结构需要程序员指定一个或多个条件由程序进行评估或测试&#xff0c;以及要执行的语句或语句如果条件被确定为true&#xff0c;如果条件被确定为false那么选择要执行其他语句。下面是在大多数编程语言中一个典型的决策结构的一般形式为&#xff1a;LISP提供了以下类型的决策…

H264基本概念之 宏块、片和片组

这几个概念对比音频信号处理可是全新的&#xff0c;下面简要介绍一下定义和作用&#xff1a; 1、宏块&#xff08;Macro Block&#xff09;&#xff1a;一个编码图像首先要划分成多个块&#xff08;4x4 像素&#xff09;才能进行处理&#xff0c;显然宏块应该是整数个块组成&…

CodeVS 1044 拦截导弹(DP)

题目大意&#xff1a; http://codevs.cn/problem/1044/ 第一问题就是求序列的最长递减数列的长度&#xff0c;第二问就是求数列的最长递增序列的长度。 代码&#xff1a; #include <iostream>using namespace std;int arr[30] {0}; int dp[30] {0}; int mp[30] {0};in…

链表(Linked List)之单链表

原文地址:传送门 链表(Linked List)介绍 链表是有序的列表&#xff0c;但是它在内存中是存储如下 小结: 链表是以节点的方式来存储,是链式存储 每个节点包含 data 域&#xff0c; next 域&#xff1a;指向下一个节点. 如图&#xff1a;发现链表的各个节点不一定是连续存储…

有字符csv文件导入matlab_Matlab:如何读取CSV文件以及如何读取带有字符串数据项的CSV文件...

CSV&#xff0c;逗号分开的文件&#xff0c;如果能快速的读取这些文件中的数据&#xff0c;无疑会帮助我们解决很多问题。1、 只有数据的CSV文件&#xff0c;CSV file that includes only numbers.As an example, create a text file, named as data.csv if you prefer, which …

xchg_mb_border()

顾名思义&#xff0c; xchg_mb_border() 交换 MB 边界的像素。阅读代码可知&#xff0c;交换双方为边界缓存 (left_border,top_borders) 与重建图象中的相应数据。其中 xchg 参数是否为 1 决定&#xff0c;在从边界缓存赋值到重建图象的同时&#xff0c;是否保存重建图象的数据…

Introduction to the Optimizer --cbo

http://docs.oracle.com/cd/B10500_01/server.920/a96533/optimops.htm

统计字符串中某个字出现的次数

package ch11;import java.util.Scanner;/** * Created by liwenj on 2017/7/21. */public class T6 { public static void main(String[] args) { String w "我爱你中国&#xff0c;我爱你故乡"; String a "爱"; int k0; …