сохранение пути изображения в базе данных и изменение фонового изображения

126
8

Первая проблема. Я хочу сохранить путь к изображениям в базе данных, но у нас есть ошибка "String или двоичные данные будут усечены. Заявление прекращено". Вторая проблема заключается в том, что фоновое изображение не меняется.

Вот мой код:

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

спросил(а) 2021-01-19T15:15:54+03:00 6 месяцев назад
1
Решение
118

Example I-ой проблемы

Эта проблема из-за вас может объявить datatype varchar(25) столбца datatype varchar(25) но при вставке данных более 25 символов в этот столбец.

Проверьте длину своего типа данных


Для второй проблемы укажите путь изображения таким образом

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

ответил(а) 2021-01-19T15:15:54+03:00 6 месяцев назад
46

Первая проблема связана с короткой длиной типа данных в базе данных, а затем с данными. Соответственно измените свой тип данных.

Вторая проблема связана с синтаксисом, я думаю. Измените свой код в функции imageupload, например:

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

ответил(а) 2021-01-19T15:15:54+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема