2016-09-18 5 views
0

asp.netでラベルにデータベースから画像を表示したい:私はこれは私のデータベースです

create table images 
(
    ID int primary key identity, 
    Name nvarchar(255), 
    Size int, 
    ImgData varbinary(max) 
) 

CREATE PROCEDURE UploadImages 
    @Name nvarchar(255), 
    @Size int, 
    @ImgData varbinary(max), 
    @NewId int output 
AS 
BEGIN 
    INSERT INTO images 
    VALUES (@Name, @Size, @ImgData) 

    SELECT @NewId = SCOPE_IDENTITY()  
END 

は、私がラベルに、データベースから画像を表示する - どのように私はasp.netでそれを行うことができます?

これは私のコードです:

HttpPostedFile PostedFile = FileUpload1.PostedFile; 

string fileName = Path.GetFileName(PostedFile.FileName); 
string fileExtension = Path.GetExtension(fileName); 
int fileSize = PostedFile.ContentLength; 

if(fileExtension.ToLower() == ".jpg" || fileExtension.ToLower() == ".bmp"|| fileExtension.ToLower() == ".gif" || fileExtension.ToLower() == ".png") 
{ 
    Stream stream = PostedFile.InputStream; 
    BinaryReader binaryReader = new BinaryReader(stream); 

    byte[] bytes = binaryReader.ReadBytes((int)stream.Length); 

    string cs = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString; 

    using (SqlConnection con = new SqlConnection(cs)) 
    { 
     SqlCommand cmd = new SqlCommand("UploadImages", con); 
     cmd.CommandType = CommandType.StoredProcedure; 

     con.Open(); 

     SqlParameter paramName = new SqlParameter() 
     { 
      ParameterName = "@Name", 
      Value = fileName 
     }; 
     cmd.Parameters.Add(paramName); 

     SqlParameter paramSize = new SqlParameter() 
     { 
      ParameterName = "@Size", 
      Value = fileSize 
     }; 
     cmd.Parameters.Add(paramSize); 

     SqlParameter paramImgData = new SqlParameter() 
     { 
      ParameterName = "@ImgData", 
      Value = bytes 
     }; 
     cmd.Parameters.Add(paramImgData); 

     SqlParameter paramNewId = new SqlParameter() 
     { 
      ParameterName = "@NewId", 
      Value =-1, 
      Direction = ParameterDirection.Output 
     }; 
     cmd.Parameters.Add(paramNewId); 

     cmd.ExecuteNonQuery(); 
     con.Close(); 

     Lmas.Visible = true; 
     Lmas.Text = "done"; 
     Lmas.ForeColor = System.Drawing.Color.Green; 
     HyperLink1.Visible = true; 
     HyperLink1.NavigateUrl = "~/ShowImage.aspx?Id=" + cmd.Parameters["@NewId"].Value.ToString(); 

     //LoadImage(); 
    } 
} 
else 
{ 
    Lmas.Visible = true; 
    Lmas.Text = "only images (.jpg .png .gif .bmp) can be uploaded"; 
    Lmas.ForeColor = System.Drawing.Color.Red; 
    HyperLink1.Visible = false; 
} 
+0

http://stackoverflow.com/questions/12848341をお試しくださいあなたが何をしようとしたのですか? –

+0

あなたは何をしようとしましたか?私はあなたがイメージをDBに保存し、ラベル内にイメージを表示することは何もわかりません。 – feeeper

+0

ラベルにDBを呼び出そうとしましたが、動作しません。 – Naeem

答えて

0

簡単な修正は次のとおりです。

<img id="img" runat="server" alt=""/> (instead of an label) 

とあなたの関数で

img.Src = "data:image/jpg;base64," + Convert.ToBase64String((byte[])datarow[0]); 
+0

私は試してみましたが、.srcを再変換しません。 – Naeem

+0

img-tagを取得しますか? –

+0

opps、私はasp.netによって作られましたが、今私はそれを変更しましたが、私はdatarowの下に赤い線があります:変数のように使用しました – Naeem

関連する問題