日期:2014-05-17  浏览次数:20811 次

保存图片到数据库里面
在窗体应用程序中 ,放一个保存图片的框,选择一张图片 并把它保存到数据库里面 ,当打开这个页面时再把原图片显示出来

------解决方案--------------------
http://www.cnblogs.com/tuyile006/archive/2007/01/08/614718.html
------解决方案--------------------
http://dcbjavaeye.iteye.com/blog/430579
------解决方案--------------------
C# code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data.SqlClient;
using System.Drawing;

namespace WindowsFormsApplication5
{
    class MyImageClass
    {
        private static string sqlConString;//连接字符串
        
        public static string SqlConString
        {
            get { return MyImageClass.sqlConString; }
            set { MyImageClass.sqlConString = value; }
        }

       /// <summary>
       /// 将图片保存至数据库
       /// </summary>
       /// <param name="fileName">图片全路径</param>
       /// <param name="name">保存的图片名称</param>
       /// <returns>返回成功或失败</returns>
        public static bool SaveImage(string fileName,string name)
        {
            SqlConnection con = new SqlConnection(SqlConString);
            SqlCommand cmd = con.CreateCommand();
            FileStream fs = new FileStream(fileName, FileMode.Open);
            byte[] MyData = new byte[fs.Length];
            fs.Read(MyData, 0, (int)fs.Length);
            fs.Close();
            SqlParameter pname = new SqlParameter("@name", name);
            cmd.Parameters.Add(pname);
            SqlParameter pimage = new SqlParameter("@image", MyData);
            cmd.Parameters.Add(pimage);
            cmd.CommandText = "insert into MyTable values (@name,@image)";
            con.Open();
            int result = cmd.ExecuteNonQuery();
            con.Close();
            if (result == 1)
                return true;
            else
                return false;
        }

        /// <summary>
        /// 从数据库读取相应图片
        /// </summary>
        /// <param name="name">图片名称</param>
        /// <returns>返回该图片</returns>
        public static Image GetImage(string name)
        {
            SqlConnection con = new SqlConnection(SqlConString);
            SqlCommand cmd = con.CreateCommand();
            SqlParameter pname = new SqlParameter("@name", name);
            cmd.Parameters.Add(pname);
            cmd.CommandText = "select image from MyTable where name=@name";
            con.Open();
            byte[] MyData = (byte[])cmd.ExecuteScalar();
            MemoryStream ms = new MemoryStream(MyData, 0, MyData.Length);
            ms.Seek(0, SeekOrigin.Begin);
            Image image = Image.FromStream(ms);
            con.Close();
            return image;
        }
    }
}

------解决方案--------------------
http://www.cnblogs.com/tuyile006/archive/2007/01/08/614718.html
------解决方案--------------------
二进制保存到数据库。然后在读取出来。
------解决方案--------------------
数据库虽然可以保存图片,但本人不建议你用图片直接保存在数据库。具体的应该是你把图片的相对路径保持在数据库,至于为什么不要把图片存入数据库你自己看下相关文章
http://www.csdn.net/article/2012-05-15/2805584