因为要做毕业设计,不会把图片存储到数据库和从数据库读出来,高手能给一个例子吗?
能发到
谢谢了

解决方案 »

  1.   

    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.Sql; 
    using System.Data.SqlClient; 
    using System.IO; namespace 读取图片 

        public partial class Form1 : Form 
        { 
            public Form1() 
            { 
                InitializeComponent(); 
            }         private void openFileDialog1_FileOk(object sender, CancelEventArgs e) 
            { 
                //把图片读到picturebox,再写入数据库    
                try 
                { 
                    SqlConnection conn = new SqlConnection(@"data source=.;uid=sa;pwd=;database=master"); 
                    conn.Open(); 
                    SqlCommand cmd = new SqlCommand("insert into image values(@i)", conn); 
                    byte[] ib = new byte[60000]; 
                    FileStream fs = new FileStream(this.openFileDialog1.FileName.ToString(), FileMode.Open, FileAccess.Read); 
                    fs.Read(ib, 0, 60000); 
                    cmd.Parameters.Add("@i", SqlDbType.Image, (int)fs.Length); 
                    cmd.Parameters["@i"].Value = ib; 
                    cmd.ExecuteNonQuery(); 
                    conn.Close(); 
                    MessageBox.Show("保存成功"); 
                } 
                catch(Exception E) 
                { 
                    MessageBox.Show(E.Message); 
                } 
            }         private Image imagefromstream(MemoryStream buf, bool p) 
            { 
                throw new Exception("The method or operation is not implemented."); 
            }         private void toolStripButton1_Click(object sender, EventArgs e) 
            { 
                this.openFileDialog1.Filter = "jpg files (*.jpg) ¦*.jpg"; 
                this.openFileDialog1.ShowDialog(); 
            } 显示图片: 
      private void toolStripButton2_CheckedChanged(object sender, EventArgs e) 
            { 
                SqlConnection conn = new SqlConnection(@"data source=.;uid=sa;pwd=;database=master"); 
                conn.Open(); 
                SqlCommand cmd = new SqlCommand("select image1 from image", conn); 
                SqlDataReader reader = cmd.ExecuteReader(); 
                reader.Read(); 
                while (reader.Read()) 
                { 
                    for (int i = 0; i  < reader.FieldCount; i++) 
                    { 
                        MemoryStream buf = new MemoryStream((byte[])reader[i]); 
                        Image image = Image.FromStream(buf,true); 
                        this.pictureBox1.Image = image; 
                    } 
                } 
            } 
     
     
      

  2.   

    把图片上传到数据库,并显示出来,查看该列占用了多大空间
    //上传到数据库,关键是设置SQLPARAMETERS参数类型为IMAGE,其它照常,显示时的关键代码C# codecontext.Response.Clear(); 
    context.Response.Buffer = true; 
    context.Response.OutputStream.Write(bDefaultPhoto, 0, bDefaultPhoto.Length); 
    context.Response.End();
      

  3.   

    图片在数据库里用image类型存储,一楼的方法就行,但读取文件的时候我认为不要直接设定byte[]数组的大小  byte[] ib = new byte[60000];  
    可以这样定大小
      string  FilePath="C:\\aa.jpg";
    FileInfo fi=new FileInfo(FilePath);
    byte[] ib=new byte[fi.length];
      

  4.   

    是存地址的
    还有就是如果存进数据库以后我是用一个Image控件来读出来的this.Image1.? = Dt.Rows[0][8].ToString();
    请问?用什么来代替的,我本来用Text的,但是系统提示错误
      

  5.   

    我不是用Form来做的,我新建一个ASP.NET网站,用Default.aspx
      

  6.   

    将图片转换成byte.
    MemoryStream ms=new MemoryStream();
    im.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
    byte[] myData=new Byte[ms.length];
    ms.Position=0;
    ms.Read(myData,0,Convert.ToInt32(ms.length));
    cmd.Parameters["@photo"].Value=myDate;
      

  7.   

    读取图象:
    byte[] byteoledbdata=new byte[0];
    byteoledbdata=(byte[])dr[0];
    memorystream  stm=new memorystream(byteoledbdata);
    im=image.FormStream(stm);