복붙노트

[SQL] C #을 사용 데이터베이스에 이미지를 저장하는 방법 [마감]

SQL

C #을 사용 데이터베이스에 이미지를 저장하는 방법 [마감]

나는 C #에서 데이터베이스로 사용자 이미지를 저장합니다. 어떻게 그렇게 할 수 있습니까?

해결법

  1. ==============================

    1.당신은 SQL BLOB 컬럼에 저장 될 수있는 바이너리 형식으로 이미지를 직렬화해야합니다. 당신은 SQL 서버를 사용하는 가정, 여기에 주제에 대한 좋은 기사입니다 :

    당신은 SQL BLOB 컬럼에 저장 될 수있는 바이너리 형식으로 이미지를 직렬화해야합니다. 당신은 SQL 서버를 사용하는 가정, 여기에 주제에 대한 좋은 기사입니다 :

    http://www.eggheadcafe.com/articles/20020929.asp

  2. ==============================

    2.이 방법을 사용해보십시오. 당신은 이미지 타입 바이트이다 저장할 때 때 필드를 작동합니다. 첫째는 이미지 바이트 [] 만든다. 그런 다음 타입의 바이너리의 IDataParameter를 사용하여 DB에 저장합니다.

    이 방법을 사용해보십시오. 당신은 이미지 타입 바이트이다 저장할 때 때 필드를 작동합니다. 첫째는 이미지 바이트 [] 만든다. 그런 다음 타입의 바이너리의 IDataParameter를 사용하여 DB에 저장합니다.

    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Data;
    
        public static void PerisitImage(string path, IDbConnection connection)
        {
            using (var command = connection.CreateCommand ())
            {
                Image img = Image.FromFile (path);
                MemoryStream tmpStream = new MemoryStream();
                img.Save (tmpStream, ImageFormat.Png); // change to other format
                tmpStream.Seek (0, SeekOrigin.Begin);
                byte[] imgBytes = new byte[MAX_IMG_SIZE];
                tmpStream.Read (imgBytes, 0, MAX_IMG_SIZE);
    
                command.CommandText = "INSERT INTO images(payload) VALUES (:payload)";
                IDataParameter par = command.CreateParameter();
                par.ParameterName = "payload";
                par.DbType = DbType.Binary;
                par.Value = imgBytes;
                command.Parameters.Add(par);
                command.ExecuteNonQuery ();
            }
        }
    
  3. ==============================

    3.이것은 asp.net으로는 FileUpload 컨트롤을 사용하는 방법이다 :

    이것은 asp.net으로는 FileUpload 컨트롤을 사용하는 방법이다 :

    byte[] buffer = new byte[fu.FileContent.Length];
    Stream s = fu.FileContent;
    s.Read(buffer, 0, buffer.Length);
    //Then save 'buffer' to the varbinary column in your db where you want to store the image.
    
  4. ==============================

    4.당신은 C #에서 바이트 []로 이미지를 변환 할 수 있습니다, 다음은 VARBINARY 같은 데이터베이스 열을해야합니다 (MAX)

    당신은 C #에서 바이트 []로 이미지를 변환 할 수 있습니다, 다음은 VARBINARY 같은 데이터베이스 열을해야합니다 (MAX)

    그 후, 그냥 다른 데이터 유형을 저장하는 것과 같습니다.

  5. ==============================

    5.이 응용 프로그램은 웹 응용 프로그램의 경우, 다음의 경로를 저장, 당신이있어 경우에 따라 달라집니다 .. - (바이트 배열 이진)는 데이터베이스에서 이미지의 경로를 저장하거나 BLOB으로 이미지 자체를 저장할 수 있습니다 당신은 중앙 집중화 된 데이터베이스에 연결이, 당신은 바이너리로 저장해야하는 클라이언트 기반 응용 프로그램을 가지고있는 경우 이미지가 많이 better.but입니다.

    이 응용 프로그램은 웹 응용 프로그램의 경우, 다음의 경로를 저장, 당신이있어 경우에 따라 달라집니다 .. - (바이트 배열 이진)는 데이터베이스에서 이미지의 경로를 저장하거나 BLOB으로 이미지 자체를 저장할 수 있습니다 당신은 중앙 집중화 된 데이터베이스에 연결이, 당신은 바이너리로 저장해야하는 클라이언트 기반 응용 프로그램을 가지고있는 경우 이미지가 많이 better.but입니다.

  6. ==============================

    6.내 개인적인 취향은 같은 데이터베이스에 이미지를 저장하지 않는 것입니다. 파일 시스템의 이미지 어딘가를 저장하고 데이터베이스에 대한 참조를 저장합니다.

    내 개인적인 취향은 같은 데이터베이스에 이미지를 저장하지 않는 것입니다. 파일 시스템의 이미지 어딘가를 저장하고 데이터베이스에 대한 참조를 저장합니다.

  7. ==============================

    7.당신은 SQL을 사용하고 있기 때문에, 특히 이미지를로드하는 점을 감안 ( '문자열의 문을 쓰는') 애드혹을 사용하여에 추천 할 것입니다.

    당신은 SQL을 사용하고 있기 때문에, 특히 이미지를로드하는 점을 감안 ( '문자열의 문을 쓰는') 애드혹을 사용하여에 추천 할 것입니다.

    ADO.NET은 당신을 위해 매핑의 노력 모두, 이스케이프 등을 할 수 있습니다.

    어느 저장 프로 시저를 만들거나 바인딩을 할 SqlParameter에 사용합니다.

    다른 포스터가 말하는 것처럼, 스토리지 유형으로 VARBINARY (MAX)를 사용 - 이미지 depracated되고있다.

  8. ==============================

    8.나는이 유효한 질문에 이미 답이 여기라고 생각합니다. 나뿐만 아니라 그것을 시도했다. 내 문제는 단순히 (DevExpress의에서) 사진 편집을 사용했다. 이것은 내가 주위 가지고하는 방법입니다 :

    나는이 유효한 질문에 이미 답이 여기라고 생각합니다. 나뿐만 아니라 그것을 시도했다. 내 문제는 단순히 (DevExpress의에서) 사진 편집을 사용했다. 이것은 내가 주위 가지고하는 방법입니다 :

    다시 감사합니다. Chagbert

  9. ==============================

    9.

    //Arrange the Picture Of Path.***
    
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);
    
                        string[] PicPathArray;
                        string ArrangePathOfPic;
    
                        PicPathArray = openFileDialog1.FileName.Split('\\');
    
                        ArrangePathOfPic = PicPathArray[0] + "\\\\" + PicPathArray[1];
                        for (int a = 2; a < PicPathArray.Length; a++)
                        {
                            ArrangePathOfPic = ArrangePathOfPic + "\\\\" + PicPathArray[a];
                        }
                   }
    
    // Save the path Of Pic in database
    
                        SqlConnection con = new SqlConnection("Data Source=baqar-pc\\baqar;Initial Catalog=Prac;Integrated Security=True");
                        con.Open();
    
                        SqlCommand cmd = new SqlCommand("insert into PictureTable (Pic_Path) values (@Pic_Path)", con);
                        cmd.Parameters.Add("@Pic_Path", SqlDbType.VarChar).Value = ArrangePathOfPic;
    
                        cmd.ExecuteNonQuery();
    
    ***// Get the Picture Path in Database.***
    
    SqlConnection con = new SqlConnection("Data Source=baqar-pc\\baqar;Initial Catalog=Prac;Integrated Security=True");
                    con.Open();
    
                    SqlCommand cmd = new SqlCommand("Select * from Pic_Path where ID = @ID", con);
    
                    SqlDataAdapter adp = new SqlDataAdapter();
                    cmd.Parameters.Add("@ID",SqlDbType.VarChar).Value = "1";
                    adp.SelectCommand = cmd;
    
                    DataTable DT = new DataTable();
    
                    adp.Fill(DT);
    
                    DataRow DR = DT.Rows[0];
                    pictureBox1.Image = Image.FromFile(DR["Pic_Path"].ToString());
    
  10. from https://stackoverflow.com/questions/3548401/how-to-save-image-in-database-using-c-sharp by cc-by-sa and MIT license