小談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.pswp.cn/news/455124.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455124.shtml
英文地址,請注明出處:http://en.pswp.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; …