我的問題是,每次我嘗試更新我的CMS時,它只是更新每一列/行。 例如: 我更新Test 1 -> Test 2
C#MySQL - 「更新」是選擇每一行/所有內容
同時我有測試4
但隨後測試4 - >測試2,由於我改變了測試1至2它只是改變了藏漢。
他們仍然通過ID正確工作,並且當我刪除它們時,它們單獨刪除,因此唯一與所有內容重疊的函數都會更新。
我現在將發佈我的代碼(這是我學到的東西,不要評論安全性或w/e)只需要修復此問題,以便它只更新選定的ID行。
第一:
public DataRow GetById(string ID)
{
strSQL = "SELECT ID, clnOverskrift, clnTekst "
+ "FROM tblForside "
+ "WHERE [email protected]";
objCMD = new MySqlCommand(strSQL);
objCMD.Parameters.AddWithValue("@ID", ID);
return objData.GetData(objCMD, objCon).Rows[0];
}
public void Update(PropertyForside Pro)
{
strSQL = "UPDATE tblForside SET "
+ " [email protected], [email protected] ";
objCMD = new MySqlCommand(strSQL);
objCMD.Parameters.AddWithValue("@Overskrift", Pro.Overskrift);
objCMD.Parameters.AddWithValue("@Tekst", Pro.Tekst);
objData.ModifyData(objCMD, objCon);
}
我將同時使用GetById和更新這就是爲什麼我既包括。 如果你需要了解更多這個「工廠」,我會發布它。
在這裏,我得到它:
FactoryForside fac = new FactoryForside();
PropertyForside Pro = new PropertyForside();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataRow dr = fac.GetById(Request.QueryString["ID"]);
txtOverskrift.InnerText = dr["clnOverskrift"].ToString();
txtText.InnerText = dr["clnTekst"].ToString();
}
}
protected void btnGem_Click(object sender, EventArgs e)
{
Pro.Overskrift = txtOverskrift.InnerText;
Pro.Tekst = txtText.InnerText;
Pro.ID = int.Parse(Request.QueryString["ID"]);
fac.Update(Pro);
Response.Redirect("RedigerForside.aspx");
}
我用的innerText使用文本域與NiceEdit。
添加新的工作,並刪除前面提到的 - 只有這個更新的東西無法正常工作。 它在瀏覽器中正確顯示ID "EditForside.aspx?id=13"
,但它似乎選擇其他每個ID
希望你能幫助我。
謝謝。 我的意思是......這是最基本的東西之一,我錯過了它。 我是********* 再次謝謝你! – user2874727