-2

(id,name,image) のようなテーブルがあり、データベースに画像を保存および更新する方法を知りたいです。

4

4 に答える 4

0

テーブルのデータ型のフィールドを varbinary(MAX) にすることができます。次に、c# を使用して ms sql に画像を保存できます。

using (MemoryStream ms = new MemoryStream())
{
  picturePictureEdit.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                    c.Picture = ms.ToArray();
}

テーブルから画像を取得する場合、このコードを書くことができます

if (c.Picture != null)
{
       byte[] newbit = c.Picture.ToArray();
        MemoryStream mem = new MemoryStream(newbit);
        picturePictureEdit.Image = new Bitmap(mem);

}

else
{
picturePictureEdit.Image = null;
}
于 2015-06-12T21:12:36.970 に答える
0

これを試して

CREATE TABLE [dbo].[Employee](
     [emp_id] [int] NOT NULL,
     [emp_name] [varchar](50) NOT NULL,
     [emp_image] [image] NULL
 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


string fileName = @"D:\MyImage.jpg";
string connectionString = "Password=PWD;Persist Security " + 
    "Info=True;User ID=USER;Initial Catalog=DATABASE;Data Source=SQLSERVER";
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{

    FileInfo finfo = new FileInfo(fileName);

    byte[] btImage = new byte[finfo.Length];
    FileStream fStream = finfo.OpenRead();

   fStream.Read(btImage, 0, btImage.Length);
  fStream.Close();


   using (SqlCommand sqlCommand = new SqlCommand(
        "INSERT INTO Employee (emp_id, emp_name, " + 
        "emp_image) VALUES(@emp_id, @emp_name, @emp_image)", 
        sqlConnection))
   {

       sqlCommand.Parameters.AddWithValue("@emp_id", 2);
       sqlCommand.Parameters.AddWithValue("@emp_name", "Employee Name");
       SqlParameter imageParameter = 
             new SqlParameter("@emp_image", SqlDbType.Image);
       imageParameter.Value = btImage;

       sqlCommand.Parameters.Add(imageParameter);

       sqlConnection.Open();
       sqlCommand.ExecuteNonQuery();
       sqlConnection.Close();
   }

}

参照

于 2013-07-23T09:53:17.410 に答える
-1

イメージを、SQL BLOB 列に格納できるバイナリ形式にシリアル化する必要があります。これを見てください。

于 2013-07-23T09:50:11.153 に答える