2015-07-22 2 views
-1

Я загружаю изображения в базу данных и сохраняю имя и путь в базе данных, но фактическое изображение хранится в папке. Я успешно сохранил их в папке, но не сохраняет информацию об изображении в базу данных.ASP.NET C# - путь к изображению не сохраняется в базе данных

Любая помощь очень ценится. Ниже мой код позади:

private void StartUpLoad() 
    { 

     //get the file name of the posted image 
     string imgName = FileUpload1.FileName.ToString(); 

     //sets the image path 
     string imgPath = "images/" + imgName; 

     //then save it to the Folder 
     FileUpload1.SaveAs(Server.MapPath(imgPath)); 

     //get the size in bytes that 
     int imgSize = FileUpload1.PostedFile.ContentLength; 

     //validates the posted file before saving 
     if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "") 
     { 
      if (FileUpload1.PostedFile.ContentLength > 5120) // 5120 KB means 5MB 
      { 
       Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "Alert", "alert('File is too big')", true); 
      } 

      else 
      { 
       //save the file 
       //Call the method to execute Insertion of data to the Database 
       ExecuteInsert(imgName, imgSize, imgPath); 
       Response.Write("Save Successfully!"); 
      } 
     } 
    } 

    private string GetConnectionString() 
    { 
     //sets the connection string from your web config file. "DBConnection" is the name of your Connection String 
     return System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
    } 

    private void ExecuteInsert(string name, int size, string path) 
    { 
     SqlConnection conn = new SqlConnection(GetConnectionString()); 
     string sql = "INSERT INTO ImageInfo (ImageName, ImageSize, ImagePath) VALUES " 
        + " (@ImgName,@ImgSize,@ImgPath)"; 
     try 
     { 
      conn.Open(); 

      SqlCommand cmd = new SqlCommand(sql, conn); 
      SqlParameter[] param = new SqlParameter[3]; 

      param[0] = new SqlParameter("@ImgName", SqlDbType.NVarChar, 50); 
      param[1] = new SqlParameter("@ImgSize", SqlDbType.BigInt, 9999); 
      param[2] = new SqlParameter("@ImgPath", SqlDbType.VarChar, 50); 

      param[0].Value = name; 
      param[1].Value = size; 
      param[2].Value = path; 

      for (int i = 0; i < param.Length; i++) 
      { 
       cmd.Parameters.Add(param[i]); 
      } 

      cmd.CommandType = CommandType.Text; 
      cmd.ExecuteNonQuery(); 
     } 

     catch (System.Data.SqlClient.SqlException ex) 
     { 
      string msg = "Insert Error:"; 
      msg += ex.Message;  
     } 

     finally 
     { 
      conn.Close(); 
     } 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     StartUpLoad(); 
    } 

Ниже мой asp.net код

<div> 
    <asp:FileUpload ID="FileUpload1" runat="server" /> 
    <br /> 
    <asp:Button ID="Button1" runat="server" Text="Save" onclick="Button1_Click" /> 
</div> 
+0

любое исключение/журнал? – Amogh

+1

Установили ли вы контрольную точку в своем улове и прочитали исключения, если они есть? –

ответ

0

Ваш путь и имя изображения только установить, чтобы 50 символов и ваш путь к изображению плюс название, скорее всего, больше, чем что. Проверьте размер этих значений в отладке. Если они длиннее 50 символов, тогда база данных отклоняет вставку.

-1

Почему вы не отлаживаете свой код, скопируйте/вставьте команду вставки в менеджер баз данных и посмотрите, вызывает ли это исключение.

Смежные вопросы