• .net winform openFileDialog1 显示缩略图 .FromFile(path)


    关键字: oracle 数据库 blob 字段 图片 存储 保存 插入
    需要打开源码

    改一下数据源和表名还有字段名

    C#代码 复制代码
    1. using System;   
    2. using System.Collections.Generic;   
    3. using System.ComponentModel;   
    4. using System.Data;   
    5. using System.Drawing;   
    6. using System.Text;   
    7. using System.Windows.Forms;   
    8.   
    9. using System.IO;   
    10. using System.Data.OleDb;   
    11.   
    12. namespace ImageSaveOracleBlobDataBase   
    13. {   
    14.     public partial class Form1 : Form   
    15.     {   
    16.         /// <summary>    
    17.         /// 作者:黑色头发   
    18.         /// C# WinForm操作oracle数据库的Blob字段   
    19.         /// blog:http://heisetoufa.javaeye.com   
    20.         /// 静网:http://www.heisetoufa.cn   
    21.         /// </summary>    
    22.   
    23.         public Form1()   
    24.         {   
    25.             InitializeComponent();   
    26.         }  
    27.  
    28.         #region 保存图片到oracle数据库   
    29.   
    30.         private void button1_Click(object sender, EventArgs e)   
    31.         {   
    32.             string cnnstr = "provider=OraOLEDB.Oracle;data source=zlkj_kk;User Id=kk;Password=kk;";   
    33.             OleDbConnection con = new OleDbConnection(cnnstr);   
    34.             try  
    35.             {   
    36.                 con.Open();   
    37.             }   
    38.             catch  
    39.             { }   
    40.             OleDbCommand cmd = new OleDbCommand(cnnstr, con);   
    41.   
    42.             cmd.CommandType = CommandType.Text;   
    43.             cmd.CommandText = cnnstr;   
    44.   
    45.             string imgPath = @"d:\aa\a.jpg";//图片文件所在路径   
    46.             FileStream file = new FileStream(imgPath, FileMode.Open, FileAccess.Read);   
    47.             Byte[] imgByte = new Byte[file.Length];//把图片转成 Byte型 二进制流   
    48.             file.Read(imgByte, 0, imgByte.Length);//把二进制流读入缓冲区   
    49.             file.Close();   
    50.   
    51.   
    52.             cmd.CommandText = " insert into kk.kkzp ( xh,zp ) values ('17',:zp) ";//正常sql语句插入数据库   
    53.   
    54.             cmd.Parameters.Add("zp", System.Data.OleDb.OleDbType.Binary, imgByte.Length);   
    55.             cmd.Parameters[0].Value = imgByte;   
    56.   
    57.             try  
    58.             {   
    59.                 cmd.ExecuteNonQuery();   
    60.                 MessageBox.Show("插入成功");   
    61.             }   
    62.             catch (System.Exception e1)   
    63.             {   
    64.                 MessageBox.Show(e1.Message);   
    65.             }   
    66.         }  
    67.  
    68.         #endregion  
    69.  
    70.  
    71.         #region 修改图片   
    72.   
    73.         private void button2_Click(object sender, EventArgs e)   
    74.         {   
    75.             string cnnstr = "provider=OraOLEDB.Oracle;data source=zlkj_kk;User Id=kk;Password=kk;";   
    76.             OleDbConnection con = new OleDbConnection(cnnstr);   
    77.   
    78.             string imgPath = @"d:\aa\b.jpg";//图片文件所在路径   
    79.             FileStream file = new FileStream(imgPath, FileMode.Open, FileAccess.Read);   
    80.             Byte[] ddd = new Byte[file.Length];//把图片转成 Byte型 二进制流   
    81.             file.Read(ddd, 0, ddd.Length);//把二进制流读入缓冲区   
    82.             file.Close();   
    83.   
    84.   
    85.             string strSQL = "update kk.kkzp set zp=:zp where xh = '16' ";   
    86.             try  
    87.             {   
    88.                 con.Open();   
    89.             }   
    90.             catch  
    91.             { }   
    92.             OleDbCommand cmd = new OleDbCommand(cnnstr, con);   
    93.   
    94.             cmd.CommandType = CommandType.Text;   
    95.             cmd.CommandText = strSQL;   
    96.             cmd.Parameters.Add("zp", System.Data.OleDb.OleDbType.Binary, ddd.Length).Value = ddd;   
    97.             cmd.ExecuteNonQuery();   
    98.             MessageBox.Show("修改成功");   
    99.         }  
    100.  
    101.         #endregion  
    102.  
    103.  
    104.         #region 读出数据库里图片   
    105.   
    106.         private void button3_Click(object sender, EventArgs e)   
    107.         {   
    108.             string strSQL = "select xh,zp from kk.kkzp where xh = 16 ";   
    109.             string cnnstr = "provider=OraOLEDB.Oracle;data source=zlkj_kk;User Id=kk;Password=kk;";   
    110.             OleDbConnection con = new OleDbConnection(cnnstr);   
    111.             try  
    112.             {   
    113.                 con.Open();   
    114.             }   
    115.             catch  
    116.             { }   
    117.             OleDbCommand cmd = new OleDbCommand(strSQL, con);   
    118.             System.Data.OleDb.OleDbDataReader dr = cmd.ExecuteReader();   
    119.             while (dr.Read())   
    120.             {   
    121.                 if (dr["zp"] != DBNull.Value)//照片字段里有值才能进到方法体显示图片,否则清空pb      
    122.                 {   
    123.                     MemoryStream ms = new MemoryStream((byte[])dr["zp"]);//把照片读到MemoryStream里      
    124.                     Image imageBlob = Image.FromStream(ms, true);//用流创建Image      
    125.                     pictureBox1.Image = imageBlob;//输出图片      
    126.                     pictureBox1.Image.Save("d:\\abcc.jpg", pictureBox1.Image.RawFormat);   
    127.                 }   
    128.                 else//照片字段里没值,清空pb      
    129.                 {   
    130.                     pictureBox1.Image = null;   
    131.                 }      
    132.             }   
    133.         }  
    134.  
    135.         #endregion  
    136.  
    137.  
    138.         #region 使文本编辑变得可见   
    139.   
    140.         private void button4_Click(object sender, EventArgs e)   
    141.         {   
    142.             textBox1.Visible = true;   
    143.             button5.Visible = true;   
    144.             button6.Visible = true;   
    145.             button7.Visible = true;   
    146.         }  
    147.  
    148.         #endregion  
    149.  
    150.         #region 保存文本   
    151.   
    152.         private void button5_Click(object sender, EventArgs e)   
    153.         {   
    154.             string cnnstr = "provider=OraOLEDB.Oracle;data source=zlkj_kk;User Id=kk;Password=kk;";   
    155.             OleDbConnection con = new OleDbConnection(cnnstr);   
    156.             try  
    157.             {   
    158.                 con.Open();   
    159.             }   
    160.             catch  
    161.             { }   
    162.             OleDbCommand cmd = new OleDbCommand(cnnstr, con);   
    163.   
    164.             cmd.CommandType = CommandType.Text;   
    165.             cmd.CommandText = cnnstr;   
    166.   
    167.             string txvalue = this.textBox1.Text.Trim();   
    168.   
    169.             //将textBox1.Text转换为二进制类型   
    170.             byte[] expbyte = System.Text.Encoding.Unicode.GetBytes(txvalue);   
    171.   
    172.             cmd.CommandText = " insert into kk.kkzp ( xh,zp ) values ('18',:zp) ";   
    173.   
    174.             cmd.Parameters.Add("zp", System.Data.OleDb.OleDbType.Binary, expbyte.Length);   
    175.             cmd.Parameters[0].Value = expbyte;   
    176.   
    177.             try  
    178.             {   
    179.                 cmd.ExecuteNonQuery();   
    180.                 MessageBox.Show("插入结束");   
    181.             }   
    182.             catch (System.Exception e1)   
    183.             {   
    184.                 MessageBox.Show(e1.Message);   
    185.             }   
    186.         }  
    187.  
    188.         #endregion  
    189.  
    190.  
    191.         #region 修改文本   
    192.   
    193.         private void button6_Click(object sender, EventArgs e)   
    194.         {   
    195.             string cnnstr = "provider=OraOLEDB.Oracle;data source=zlkj_kk;User Id=kk;Password=kk;";   
    196.             OleDbConnection con = new OleDbConnection(cnnstr);   
    197.   
    198.             byte[] ddd;   
    199.             ddd = System.Text.Encoding.Unicode.GetBytes(this.textBox1.Text);   
    200.             string strSQL = "update kk.kkzp set zp=:zp where xh = 18 ";   
    201.             try  
    202.             {   
    203.                 con.Open();   
    204.             }   
    205.             catch  
    206.             { }   
    207.             OleDbCommand cmd = new OleDbCommand(cnnstr, con);   
    208.   
    209.             cmd.CommandType = CommandType.Text;   
    210.             cmd.CommandText = strSQL;   
    211.             cmd.Parameters.Add("zp", System.Data.OleDb.OleDbType.Binary, ddd.Length).Value = ddd;   
    212.             cmd.ExecuteNonQuery();   
    213.             MessageBox.Show("OK!");   
    214.         }  
    215.  
    216.         #endregion  
    217.  
    218.           
    219.         #region 读出文本   
    220.   
    221.         private void button7_Click(object sender, EventArgs e)   
    222.         {   
    223.             string strSQL = "select xh,zp from kk.kkzp where xh = 18 ";   
    224.             string cnnstr = "provider=OraOLEDB.Oracle;data source=zlkj_kk;User Id=kk;Password=kk;";   
    225.             OleDbConnection con = new OleDbConnection(cnnstr);   
    226.             try  
    227.             {   
    228.                 con.Open();   
    229.             }   
    230.             catch  
    231.             { }   
    232.             OleDbCommand cmd = new OleDbCommand(strSQL, con);   
    233.             System.Data.OleDb.OleDbDataReader dr = cmd.ExecuteReader();   
    234.             while (dr.Read())   
    235.             {   
    236.   
    237.                 //读取BLOB数据时也要将其转换回文本类型   
    238.                 string dd = dr["zp"].ToString();   
    239.                 byte[] ooo = (byte[])dr["zp"];   
    240.                 string str;   
    241.                 str = System.Text.Encoding.Unicode.GetString(ooo);   
    242.                 this.textBox1.Text = str;   
    243.             }   
    244.         }  
    245.  
    246.         #endregion  
    247.  
    248.  
    249.         #region 退出   
    250.   
    251.         private void button8_Click(object sender, EventArgs e)   
    252.         {   
    253.             Application.Exit();   
    254.         }  
    255.  
    256.         #endregion  
    257.  
    258.  
    259.         #region 单击状态栏   
    260.   
    261.         private void toolStripStatusLabel2_Click(object sender, EventArgs e)   
    262.         {   
    263.             System.Diagnostics.Process.Start("http://heisetoufa.javaeye.com");   
    264.         }  
    265.  
    266.         #endregion   
    267.     }   
    268. }  
  • 相关阅读:
    3道常见的vue面试题,你都会了吗?
    如何让HTTPS站点评级达到A+? 还得看这篇HTTPS安全优化配置最佳实践指南
    Python速查表汇总
    VIM复健
    【PHP】使用RSA加密解密
    【PHP】生成RSA公钥私钥
    【PHP】生成验证码
    WebDriverManager实现自动获取浏览器驱动(Java)
    了解patchpackage
    github访问不了记录一下
  • 原文地址:https://www.cnblogs.com/liufei88866/p/1739135.html
Copyright © 2020-2023  润新知