C# C“MySQL-”的;更新;正在选择每一行/所有内容
我的问题是,每次我尝试在CMS中更新时,它只会更新每一列/行。 例如: 我更新C# C“MySQL-”的;更新;正在选择每一行/所有内容,c#,mysql,asp.net,sql,C#,Mysql,Asp.net,Sql,我的问题是,每次我尝试在CMS中更新时,它只会更新每一列/行。 例如: 我更新test1->test2 同时我还有第四次考试 但是测试4->测试2,因为我把测试1改成了测试2,所以它也简单地改变了这一点 它们仍然按ID正确工作,当我删除它们时,它们会单独删除,因此唯一与所有内容重叠的功能是更新 我现在将发布我的代码(这是我学到的,不要对安全性或w/e发表评论),只是需要修复此问题,以便它只更新选定的ID行 第一: public DataRow GetById(string ID) {
test1->test2
同时我还有第四次考试
但是测试4->测试2,因为我把测试1改成了测试2,所以它也简单地改变了这一点
它们仍然按ID正确工作,当我删除它们时,它们会单独删除,因此唯一与所有内容重叠的功能是更新
我现在将发布我的代码(这是我学到的,不要对安全性或w/e发表评论),只是需要修复此问题,以便它只更新选定的ID行
第一:
public DataRow GetById(string ID)
{
strSQL = "SELECT ID, clnOverskrift, clnTekst "
+ "FROM tblForside "
+ "WHERE ID=@ID";
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 "
+ " clnOverskrift=@Overskrift, clnTekst=@Tekst ";
objCMD = new MySqlCommand(strSQL);
objCMD.Parameters.AddWithValue("@Overskrift", Pro.Overskrift);
objCMD.Parameters.AddWithValue("@Tekst", Pro.Tekst);
objData.ModifyData(objCMD, objCon);
}
我将同时使用GetById和Update,这就是我将两者都包括在内的原因。
如果你需要知道更多在这个“工厂”,我会张贴它
我明白了:
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将文本区域与编辑一起使用
添加新的工作,并删除如前所述-只有这个更新的东西不能正常工作。
它在浏览器中正确显示ID“EditForside.aspx?ID=13”
,但它似乎也选择了其他每个ID
希望您能帮助我。原因可能是您没有在
update
子句中提供where
条件。因此,如果在update
语句中不提供where
条件,它将更新表中的每一行
试着这样做:
strSQL = "UPDATE tblForside SET "
+ " clnOverskrift=@Overskrift, clnTekst=@Tekst "
+ " WHERE ID=@ID";
UPDATE语句必须包含WHERE条件—与select语句中使用的条件相同。然后它将只更新该特定行。没有一个文件,它更新表中的每一行
文档:您需要在更新语句中提供一个
WHERE
子句。例如
strSQL = "UPDATE tblForside SET "
+ " clnOverskrift=@Overskrift, clnTekst=@Tekst "
+ " WHERE ID=@ID";
这限制了要更新的行。谢谢。我是说。。这是最基本的事情之一,我错过了。我是*******再次感谢你!