zoukankan      html  css  js  c++  java
  • C#實現SQL Server中存取圖片、文件

    /* 
     在master中创建表test 
       
      CREATE   TABLE test 
       ( 
         id INT IDENTITY(1, 1) , 
         files IMAGE 
       ) 
    */ 
     
    using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Text; 
    using System.Windows.Forms; 
    using System.Data.SqlClient; 
     
    using System.IO;  
      
    namespace WindowsApplication11 

        public partial class Form1 : Form 
        { 
            public Form1() 
            { 
                InitializeComponent(); 
            } 
     
            private void Button1_Click(object sender, EventArgs e) 
            { 
               // Data Source=.;Initial Catalog=ycmis1;Integrated Security=True 
     
                insertdataintodatabase(@"D:\123.txt", @"Data Source=.;Initial Catalog=master;Integrated Security=True"); 
            } 
     
            //將資料寫進資料庫  
            //參數:  
            //filepath            檔路徑  
            //connectionstring      連接字串  
            public void insertdataintodatabase(string filepath, string connectionstring) 
            { 
                if (File.Exists(filepath) == false
                { 
                    MessageBox.Show("無法讀取文件! ""提示 ", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     
                    return
                } 
     
                //創建檔物件以打開的形式讀取檔  
                System.IO.FileStream sfilestream = new System.IO.FileStream(filepath, System.IO.FileMode.Open); 
                //分配陣列大小  
                byte[] bfile = new byte[sfilestream.Length]; 
                //將檔內容讀進陣列  
                sfilestream.Read(bfile, 0, (int)sfilestream.Length); 
                //關閉檔物件  
                sfilestream.Close(); 
                //創建連接  
                SqlConnection conn = new SqlConnection(connectionstring); 
                conn.Open(); 
                SqlCommand com = conn.CreateCommand(); 
                com.CommandText = "insert into    test  values (@f )"
                // com.CommandText = "update   表   set   [圖片]=@f   where   id= '0001 ' ";   //更新的 
     
                com.CommandType = CommandType.Text; 
     
                SqlParameter sp = new SqlParameter("@f ", SqlDbType.Image, bfile.Length, ParameterDirection.Input, false00null, DataRowVersion.Current, bfile); 
     
                com.Parameters.Add(sp); 
                com.ExecuteNonQuery(); 
                conn.Close(); 
            } 
     
            //從資料庫中讀取資料  
            //參數:  
            //filepath            檔路徑  
            //connectionstring      連接字串  
            public void loaddatafromdatabase(string filepath, string connectionstring) 
            { 
                //判斷檔是否已存在.  
                if (File.Exists(filepath) != true
                { 
                    //如存在則刪除  
                    File.Delete(filepath); 
                } 
                //創建連接  
                SqlConnection conn = new SqlConnection(connectionstring); 
                conn.Open(); 
                SqlCommand com = conn.CreateCommand(); 
                com.CommandText = "select top 1  files  from  test "
                com.CommandType = CommandType.Text; 
                //用datareader讀取數據  
                SqlDataReader sr = com.ExecuteReader(); 
     
                sr.Read(); 
                //判斷是否有記錄  
                if (sr.HasRows == false
                { 
                    sr.Close(); 
                    conn.Close(); 
                    return
                } 
     
                //分配陣列大小  
                byte[] bfile = new byte[Convert.ToInt32(sr.GetBytes(00null0, Int32.MaxValue))]; 
                //將資料讀進陣列  
                sr.GetBytes(00, bfile, 0, bfile.Length); 
                //關閉datareader  
                sr.Close(); 
                //創建檔物件以創建檔的形式打開檔  
                System.IO.FileStream sfilestream = new System.IO.FileStream(filepath, System.IO.FileMode.Create); 
     
                //將陣列的內容寫進檔  
                sfilestream.Write(bfile, 0, bfile.Length); 
                //關閉文件  
                sfilestream.Close(); 
            } 
     
          
     
            private void Button2_Click(object sender, EventArgs e) 
            { 
                loaddatafromdatabase(@"D:\1234.txt", @"Data Source=.;Initial Catalog=master;Integrated Security=True"); 
     
            }  
        } 

     
     
     
     
  • 相关阅读:
    java对象存储管理
    Linux下添加新硬盘,分区及挂载
    挂载磁盘
    安装JDK
    RESTful架构详解
    java的编程习惯影响程序性能
    spring boot中的约定优于配置
    java8新特性:interface中的static方法和default方法
    约定优于配置的概念与思考
    java的数据类型:基本数据类型和引用数据类型
  • 原文地址:https://www.cnblogs.com/qanholas/p/1853250.html
Copyright © 2011-2022 走看看