C#.net中怎么读写图片到数据库中
我想利用C#.net程序将图片内容不是名字直接写到数据库中,然后在从数据库中读数据转化为一张图片,,,可我只能想,不会做,谁能帮我实现一下,

解决方案 »

  1.   


    C# 存取SqlServer中的Image类型有时候我们需要将图片存到数库中的Imgae类型的字段下,以下是存取的两种方法:存:public void Save(){    using(System.IO.FileStream stream = new System.IO.FileStreamfile,System.IO.FileMode.Open,System.IO.FileAccess.Read)    {
            byte[] buffer = new byte[stream.Length];
            stream.Read(buffer, 0, (int)stream.Length);
            stream.Close();
            string strName = System.IO.Path.GetFileNameWithoutExtension(file);
           SqlCommand cmd = new SqlCommand("Insert into Temp(name,photo) values(@name,@image)", sqlConn);
           cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = strName;
           cmd.Parameters.Add("@image", SqlDbType.Image).Value = buffer;
           cmd.ExecuteNonQuery();    }}取:public void GetImage(){SqlCommand cmd = new SqlCommand(@"SELECT name, photo FROM Temp", sqlConn);
    sqlConn.Open();
    SqlDataReader reader = cmd .ExecuteReader();
    if (reader.Read())
    {
    image_filename= (string) reader.GetValue(0);
    byte[] image_bytes = (byte[]) reader.GetValue(1);
    MemoryStream ms = new MemoryStream(image_bytes);
    Bitmap bmap = new Bitmap(ms);
    return bmap;}}
      

  2.   

    Stream ms;
      byte[] picbyte;
      OpenFileDialog ofdSelectPic = new OpenFileDialog();
      if (ofdSelectPic.ShowDialog() == DialogResult.OK)
      {
      if ((ms = ofdSelectPic.OpenFile()) != null)
      {
      picbyte = new byte[ms.Length];
      ms.Position = 0;
      ms.Read(picbyte, 0, Convert.ToInt32(ms.Length));
      SqlConnection conn = new SqlConnection();
      conn.ConnectionString = "";  sql = "Insert into Person(Photo) values(@Image)";
      SqlCommand cmd = new SqlCommand(sql, conn);  cmd.Parameters.Add("@Image", SqlDbType.VarBinary);
      cmd.Parameters["@Image"].Value = picbyte;  conn.Open();
      cmd.ExecuteNonQuery();
      conn.Close();  ms.Close();
      }
      } SqlConnection conn=new SqlConnection();   
     conn.ConnectionString="";   
     string strSql="";   
     SqlCommand cmd=new SqlCommand(strSql,conn);   
     conn.Open();   
     SqlDataReader reader=cmd.ExecuteReader();   
      reader.Read();   
     MemoryStream ms=new MemoryStream((byte[])reader["Photo"]);   
     Image image=Image.FromStream(ms,true);   
     reader.Close();   
     conn.Close();   
     picturebox1.Image=image;   
    FileStream mystream=new FileStream("D:\\A.jpg",FileMode.Open,FileAccess.Read);
    long len=mystream.Length;
    mycmd.Parameters.Add("@image",SqlDbType.Image,(int)len,"picture");
    mycmd.Parameters["@image"].Direction=System.Data.ParameterDirection.Input;
    byte []box=new byte[len];   
    mystream.Read(box,0,(int)len);
    mycmd.Parameters["@image"].Value=box;