簡體   English   中英

ASP.net C#如何做到這一點,因此更新頁面中的數據庫更新中只有一個字段

[英]ASP.net C# How can I make it so only one field in database updates in update page

我一般來說對代碼來說還很陌生,所以如果我的一些術語是錯誤的,請抱歉。

我有一個數據庫,用於存儲主頁的文件的圖像名稱,以便管理員可以上傳新圖像以替換數據庫中的先前圖像,從而將新上傳的圖像發布到主頁。

我目前遇到的問題是,當我只想更新其中一張圖像時,它會上傳該圖像,而其他圖像都被替換為空值,而我只希望更新上傳圖像的字段。

這是我的代碼,我很清楚自己在做什么錯,但是,我現在真的不知道如何解決我的問題。 任何幫助將不勝感激。

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

using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;

public partial class admin_updatehomepage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void displayedit_ItemUpdated(object sender, ListViewUpdatedEventArgs e)
    {
        info.Text = "Item Updated";

        FileUpload fileupdate1 = displayedit.EditItem.FindControl("imageupdate1") as FileUpload;
        FileUpload fileupdate2 = displayedit.EditItem.FindControl("imageupdate2") as FileUpload;
        FileUpload fileupdate3 = displayedit.EditItem.FindControl("imageupdate3") as FileUpload;
        FileUpload fileupdate4 = displayedit.EditItem.FindControl("imageupdate4") as FileUpload;
        FileUpload fileupdate5 = displayedit.EditItem.FindControl("imageupdate5") as FileUpload;
        FileUpload fileupdate6 = displayedit.EditItem.FindControl("imageupdate6") as FileUpload;
        FileUpload fileupdate7 = displayedit.EditItem.FindControl("imageupdate7") as FileUpload;
        FileUpload fileupdate8 = displayedit.EditItem.FindControl("imageupdate8") as FileUpload;
        FileUpload fileupdate9 = displayedit.EditItem.FindControl("imageupdate9") as FileUpload;

        Label recordid = displayedit.EditItem.FindControl("idlabel1") as Label;
        Int32 id = Convert.ToInt32(recordid.Text);

        if (fileupdate1.HasFile)
        {
            String fupload = fileupdate1.FileName;

            Random r = new Random();
            int rInt = r.Next(0, 10000);

            String imgpath = "../images/" + rInt + fupload;

            fileupdate1.SaveAs(Server.MapPath(imgpath));

            String newimage = rInt + fupload;

            string newsconnection = WebConfigurationManager.ConnectionStrings["newsconnection"].ConnectionString;
            SqlConnection myConnection = new SqlConnection(newsconnection);

            //myConnection.ConnectionString is now set to connectionString.
            myConnection.Open();

            String query = "UPDATE homepage SET fballimg ='" + newimage + "' WHERE id='" + id + "'";

            SqlCommand myCommand = new SqlCommand(query, myConnection);

            myCommand.ExecuteNonQuery();
            myConnection.Close();
        }
        if (fileupdate2.HasFile)
        {
            String fupload = fileupdate2.FileName;

            Random r = new Random();
            int rInt = r.Next(0, 10000);

            String imgpath = "../images/" + rInt + fupload;

            fileupdate2.SaveAs(Server.MapPath(imgpath));

            String newimage = rInt + fupload;

            string newsconnection = WebConfigurationManager.ConnectionStrings["newsconnection"].ConnectionString;
            SqlConnection myConnection = new SqlConnection(newsconnection);

            //myConnection.ConnectionString is now set to connectionString.
            myConnection.Open();

            String query = "UPDATE homepage SET rugbyimg ='" + newimage + "' WHERE id='" + id + "'";

            SqlCommand myCommand = new SqlCommand(query, myConnection);

            myCommand.ExecuteNonQuery();
            myConnection.Close();
        }
        if (fileupdate3.HasFile)
        {
            String fupload = fileupdate3.FileName;

            Random r = new Random();
            int rInt = r.Next(0, 10000);

            String imgpath = "../images/" + rInt + fupload;

            fileupdate3.SaveAs(Server.MapPath(imgpath));

            String newimage = rInt + fupload;

            string newsconnection = WebConfigurationManager.ConnectionStrings["newsconnection"].ConnectionString;
            SqlConnection myConnection = new SqlConnection(newsconnection);

            //myConnection.ConnectionString is now set to connectionString.
            myConnection.Open();

            String query = "UPDATE homepage SET bballimg ='" + newimage + "' WHERE id='" + id + "'";

            SqlCommand myCommand = new SqlCommand(query, myConnection);

            myCommand.ExecuteNonQuery();
            myConnection.Close();
        }
    }
    protected void displayedit_ItemEditing(object sender, ListViewEditEventArgs e)
    {
        info.Text = "<b>*Recommend images are 490px x 190px(or of similar ratio) to avoid image distortion</b>";
    }
    protected void displayedit_ItemCanceling(object sender, ListViewCancelEventArgs e)
    {
        info.Text = "Not Updating";
    }
}

嘗試這個...

將每個圖像的名稱存儲在不同的hiddenfield中。

現在在更新時檢查:

if (fileupdateId.HasFile)
{
    //then new file name
}
else
{
   //else hiddenfield value
}

讓我知道是否有任何查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM