2014-01-30 2 views
0
  1. 첫 번째 문제. 데이터베이스에 이미지 경로를 저장하려고하지만 "문자열 또는 이진 데이터가 잘립니다. 명령문이 종료되었습니다."라는 오류가 있습니다.
  2. 두 번째 문제는 배경 이미지가 변경되지 않는다는 것입니다.

여기 내 코드입니다 :데이터베이스에 이미지 경로를 저장하고 배경 이미지를 변경하는 중

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data.SqlClient; 
using System.Data; 

public partial class welcome : System.Web.UI.Page 
{ 
    string fname; 
    string fpath; 
    SqlConnection con = new SqlConnection(); 
    SqlCommand cmd; 
    string emailname; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if ((Session["Username"] == null) && (Session["useraddress"] == null)) 
     { 
      Response.Redirect("Registration.aspx"); 
     } 
     else 
     { 
      emailname = Session["useremail"].ToString(); 
      Label2.Text = Session["Username"].ToString(); 
      Label3.Text = Session["useraddress"].ToString(); 
      welcomelbl.Text = Session["Username"].ToString(); 
      addlbl.Text = Session["useraddress"].ToString(); 
     } 
    } 

    protected void Button1_Click1(object sender, EventArgs e) 
    { 
     Session.Clear(); 
     Response.Redirect("login.aspx"); 
    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     imageupload(); 
    } 
    public void imageupload() 
    { 
fpath = FileUpload2.PostedFile.FileName; 

      if ((string.IsNullOrEmpty(fpath))) 
      { 
       return; 
      } 
      fname = System.IO.Path.GetFileName(fpath); 
      FileUpload2.PostedFile.SaveAs(Server.MapPath("~/"+emailname+"/")+fname); 
      imagepathtext.Text = Server.MapPath("~/"+emailname+"") + fname; 
      imgnametext.Text = fname; 
      divimg.Style.Add("background-image", "url("+fname+")"); 
SqlConnection con = Connection.conn(); 
     con.Open(); 
     SqlCommand cmd = new SqlCommand("insert into imgtbl (imgname,useraddress,imgaddress) values(@name ,'" + emailname + "' ,@imgaddress)", con); 
     cmd.Parameters.AddWithValue("@name", imgnametext.Text).ToString(); ; 
     cmd.Parameters.AddWithValue("@imgaddress",imagepathtext.Text).ToString(); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 
     return; 
} 
} 
+1

첫 번째 문제 : 필드 중 하나가 데이터베이스에서 너무 짧습니다. – TGlatzer

+0

탱크 당신은 선생님이 먼저 problem.please 선생님 해결 내 두 번째 문제를 해결했다 – Raghu

+0

이것은 Visual Studio에서 귀하의 첫 번째 문제는 당신의 코드가 어떻게 생겼는지 정말로 ctrl + k & ctrl + d를 눌러 대답을 –

답변

0

사단 문제 때문에 당신이 문제는 열 datatype varchar(25)를 선언 할 수있다 Example

하지만 열에서 데이터를 25 개 이상의 문자를 삽입하는 동안.

string fname = @"C:\imagepath"; 
fpath = System.IO.Path.GetFileName(fname); 
+0

이 '% # url ("imagepaht", "{0}") %>'을 사용하는 방법을 혼란 스럽네요. – Raghu

0
  1. 1 문제처럼 두 번째 문제의 경우 이미지 경로를 사용자의 데이터 형식 길이

    를 지정 체크 한 후 데이터베이스에있는 데이터 형식의 짧은 길이의 데이터 때문이다. 그에 따라 데이터 유형을 변경하십시오.

  2. 두 번째 문제는 내가 생각하는 구문 때문입니다. function imageupload에서 코드를 다음과 같이 변경하십시오.

    divimg.Style.Add ("background", "url ("+ imagepath + ")");

+0

선생님, 저도 노력하고 있습니다. – Raghu

+0

방화 광에서 이미지 파일 경로를 확인하십시오. –

관련 문제