繁体   English   中英

将imagepath保存在数据库中并更改背景图像

[英]saving imagepath in database and changing background image

  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;
}
}

第一个问题Example

由于您可能会声明此列datatype varchar(25)但在该列中插入的数据超过25个字符时会出现此问题。

检查您的数据类型长度

对于第二个问题,请指定您的图像路径,如下所示

string fname = @"C:\imagepath";
fpath = System.IO.Path.GetFileName(fname);
  1. 第一个问题是由于数据库中的数据类型比数据短。 相应地更改数据类型。
  2. 第二个问题是由于我认为语法。 在函数imageupload中更改代码,如下所示:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM