2014-12-28 6 views
0

asp.net C#을 사용하여 소셜 네트워크 사이트를 구축하고 있습니다. 이미지를 검색하는 데 문제가 있습니다. 이미지를 데이터베이스에 업로드하면 이름이 변경되어 저장됩니다. 실제 경로에 내가 언급했다. 그리고 또한 그것의 이름으로 데이터베이스에 저장 말하고 싶다.하지만 나는 그것을 webform에 연결할 수 없습니다.데이터베이스에서 이미지를 검색하는 방법

HTML 코드

<asp:Image ID="Pro_pic" runat="server" Height="233px" ImageUrl="~/Profile/Image/Default.png" style="margin-left: 8px; margin-top: 13px" Width="187px" /> 

이 파일 뒤에 코드

protected void Page_Load(object sender, EventArgs e) 
{ 






     string db = ""; 
     db = ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString; 
     SqlConnection con = new SqlConnection(db); 
     con.Open(); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.CommandText = "SELECT * FROM [UserData] WHERE Email = '" + Session["Email"].ToString() + "'"; 
     cmd.Connection = con; 
     SqlDataReader dr; 
     dr = cmd.ExecuteReader(); 

     while (dr.Read()) 
     { 

      Pro_pic.ImageUrl = @"C:\Users\Supun\Documents\Visual Studio 2013\WebSites\MeetYou\ProfilePic\"+dr["ProfilePic"]; 

     } 

     con.Close(); 







} 

입니다 그리고 이것은 SQL 코드

CREATE TABLE [dbo].[UserData] (
[YourName] VARCHAR (50) NULL, 
[Email]  VARCHAR (50) NOT NULL, 
[Password] VARCHAR (50) NULL, 
[Gender]  VARCHAR (50) NULL, 
[Birthday] VARCHAR (50) NULL, 
[AboutMe]  VARCHAR (50) NULL, 
[Country]  VARCHAR (50) NULL, 
[ID]   NVARCHAR (50) NOT NULL, 
[ProfilePic ] NVARCHAR (500)  NULL, 
CONSTRAINT [PK_UserData] PRIMARY KEY CLUSTERED ([Email] ASC) 

)이다;

someboday가이 이미지 URL을 제대로 얻는 방법을 알려주시겠습니까 ???

나는이

Pro_pic.ImageUrl = @"C:\Users\Supun\Documents\Visual Studio 2013\WebSites\MeetYou\ProfilePic\"+dr["ProfilePic"]; 
+0

은'ProfilePic'이 프로필 사진의 이름입니다, 프로필 사진이 모두 같은 폴더에 있다는 것을 알고 있습니까? 그렇다면 그 문제는 무엇입니까? 예외가 있습니까? 아니면 어떻게됩니까? – msporek

+0

예 동일한 폴더에있는 모든 사진은 이름이 다르지만 사진이로드되지 않습니다. –

답변

0

에 오류가 당신은 응용 프로그램의 하위 폴더로 이미지와 폴더를 넣어한다고 생각합니다. 응용 프로그램 외부에 직접 위치 시키면 이러한 액세스 문제가 발생할 수 있습니다. 응용 프로그램 위치에 폴더 ("이미지"라고 부름)를 넣으면 ImageUrl 속성을 "~/Images /"+ 파일 이름으로 지정할 수 있습니다.

+0

이제 고맙겠습니다. –

0

웹 환경, 특히 ASP.NET 및 MVC에서 이미지 작업을 할 때는 특정 지침을 따라야합니다.

  1. byte [] 스트림을 사용하여 이미지를 저장 한 다음 속도가 느리고 최적화되지 않은 쿼리를 사용하여 데이터베이스에서 이미지를 재구성하지 마십시오.

  2. 표준 방법은 이미지를 넣은 루트 디렉토리의/Images 폴더를 만드는 것입니다.

  3. 클래스 라이브러리를 작성 :

    공용 클래스 QueryClass { 문자열 img_url; SqlConnection con = 새 SqlConnection ("// CONNECTION_STRING"); SqlCommand cmd; SqlDataReader 판독기;

    public string getImageUrl(){ 
        cmd=new SqlCommand("select * from UserData where WHERE Email = '" + Session["Email"].ToString() + "'",con); 
        reader=cmd.ExecuteReader(); 
        while(reader.read()){ 
         img_url=reader[8].ToString(); 
         break; 
        } 
        return img_url; 
    } 
    
  4. 저장소의 URL (또는 URI) 이미지에, 즉, 이미지 경로 예 : /Images/tree.png과 이미지 컨트롤에 바인딩.

  5. URL 문자열을 데이터베이스 엔터티로 저장하고 쿼리를 통해 검색하십시오. 예 : SELECT img FROM Users WHERE [email protected]

  6. 쿼리를 실행하고 문자열의 URL을 저장이

  7. 마지막으로 사용 string img_url=QueryClass.getImageUrl();Pro_pic.ImageUrl= "/Images/"+img_url;

    그것은처럼 보이는
관련 문제