Как сохранить путь к файлу при загрузке файлов из gridview в ASP.NET
Итак, у меня есть gridview,который отображает имя изображения, Изображения и ссылку на изображение для загрузки из базы данных SQL server. Я хочу сохранить путь к изображению в базе данных после загрузки изображения (при нажатии кнопки link) в отдельной таблице БД. Пожалуйста, помогите мне! Мне это нужно как можно скорее ;(
Эта веб-форма загрузки изображений подключена к моей другой веб-форме-загрузке изображений, которая имеет поле ImgPath (nvarchar255).
Ниже приведены мои коды:
Обзор: что у меня есть до сих пор
1. Gridview изображений и ссылок на изображения
2.Gridview извлекается из базы данных
3.Возможность загрузки изображения
Что мне нужно:
1.когда изображение загружено--> сохраните путь к изображению в базе данных sql server
Что я уже пробовал:
aspx:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowCommand="GridView1_RowCommand"> <Columns> <asp:BoundField HeaderText="ID" DataField="AdvID" /> <asp:BoundField HeaderText="Name" DataField="Name" /> <asp:BoundField HeaderText="Item" DataField="Item" /> <asp:ImageField HeaderText="Image" DataImageUrlField="ImgPath" ControlStyle-Height="120" ControlStyle-Width="140"> <ControlStyle Height="120px" Width="140px"></ControlStyle> </asp:ImageField> <asp:TemplateField HeaderText="View Information"> <ItemTemplate> <asp:LinkButton ID="lnkView" runat="server" CommandArgument='<%#Eval("AdvID") %>' OnClick="lnk_OnClick">View</asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="DownloadLink"> <ItemTemplate> <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%# Eval("Item") %>' Text='<%# Eval("Item") %>' CommandName="Download"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> aspx.cs: public partial class AdvGridView : System.Web.UI.Page { SqlConnection sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ToString()); protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { this.BindGrid(); } } protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Download") { Response.Clear(); Response.ContentType = "application/octect-stream"; Response.AppendHeader("content-disposition", "filename=" + e.CommandArgument); Response.TransmitFile(Server.MapPath("~/Images/") + e.CommandArgument); Response.End(); } } void FillGridView() { if (sqlCon.State == ConnectionState.Closed) sqlCon.Open(); SqlDataAdapter sqlDa = new SqlDataAdapter("ViewAll", sqlCon); sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure; DataTable dtbl = new DataTable(); sqlDa.Fill(dtbl); sqlCon.Close(); GridView1.DataSource = dtbl; GridView1.DataBind(); } protected void lnk_OnClick(object sender, EventArgs e) { int AdvertisementID = Convert.ToInt32((sender as LinkButton).CommandArgument); if (sqlCon.State == ConnectionState.Closed) sqlCon.Open(); SqlDataAdapter sqlDa = new SqlDataAdapter("ViewByID", sqlCon); sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure; sqlDa.SelectCommand.Parameters.AddWithValue("@AdvID", AdvertisementID); DataTable dtbl = new DataTable(); sqlDa.Fill(dtbl); sqlCon.Close(); } private void BindGrid() { GridViewService.WebService service = new GridViewService.WebService(); GridView1.DataSource = service.Get(); GridView1.DataBind(); } }