これが私のクラス(product.cs)で、画像を挿入する方法は次のとおりです。
public static void InsertProductIMG(byte[] image, string contentType)
{
string cs = "Data Source=(local);Initial Catalog=myApp;Integrated Security=True";
string comandoSql = "INSERT INTO [myApp].[dbo].[product] (image, ContentType) VALUES (@image, @contentType)";
using (SqlConnection conn = new SqlConnection(cs))
{
conn.Open();
using (SqlTransaction trans = conn.BeginTransaction())
{
SqlCommand cmd = new SqlCommand(comandoSql, conn, trans);
SqlParameter[] parms = new SqlParameter[2];
parms[0] = new SqlParameter("@image", image);
parms[1] = new SqlParameter("@contentType", contentType);
foreach (SqlParameter p in parms)
{
cmd.Parameters.Add(p);
}
cmd.ExecuteNonQuery();
trans.Commit();
}
}
}
上記のメソッドを呼び出す apsx ページのコード ビハインドは次のとおりです。
byte[] imageBytes = new byte[fupld.PostedFile.InputStream.Length];
product.InsertProductIMG(imageBytes, "image/jpeg");//product is the class where the method is
今、私はこの画像を表示する方法を知りたいですか?
SQL(SELECT)からbyte []を読み取り、文字列に変換してからbyte []に変換する必要がありますか?その後、ビットマップ (System.Drawing) に変換します。しかし、このビットマップを aspx ページに表示するにはどうすればよいでしょうか?
やり方がわかりません。助けてください!!:]
ありがとう
Obs.: SQL Server では、列image
の型はvarbinary(MAX)
です。