【发布时间】:2018-05-27 17:18:35
【问题描述】:
我正在尝试更新我的数据库但没有成功。这就是我的桌子的样子:
https://i.stack.imgur.com/Q6EDk.png
打开模态框后是这样的:
https://i.stack.imgur.com/JusUp.png
所有表格都可以使用中继器,这是我的代码。
protected void Btnupdate_Click(object sender, EventArgs e)
{
try
{
foreach (RepeaterItem RI in rptEdit.Items)
{
Label id = RI.FindControl("Pid") as Label;
TextBox prdname = RI.FindControl("prdname") as TextBox;
TextBox prdprice = RI.FindControl("prdprice") as TextBox;
TextBox prdshortdesc = RI.FindControl("prdshortdesc") as TextBox;
TextBox prdtype = RI.FindControl("prdtype") as TextBox;
TextBox prdbrand = RI.FindControl("prdbrand") as TextBox;
Literal ltl = RI.FindControl("ltlmsg") as Literal;
string ConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Table.accdb";
string SqlString = "UPDATE ProductList SET Pname = ?";
using (OleDbConnection conn = new OleDbConnection(ConnString))
{
using (OleDbCommand cmd = new OleDbCommand(SqlString, conn))
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("Pname", prdname.Text);
conn.Open();
cmd.ExecuteNonQuery();
ltl.Text = "<br/>Done.";
}
}
}
}
catch (OleDbException ex)
{
foreach (RepeaterItem RI in rptEdit.Items)
{
Literal ltl = RI.FindControl("ltlmsg") as Literal;
ltl.Text = ex.Message;
}
}
}
当我单击更新按钮时,它正在刷新,但没有任何反应。
请帮忙。
【问题讨论】:
-
更新数据时是否遇到任何错误?听起来您需要
WHERE子句来根据行 ID 更新数据。 -
就像@TetsuyaYamamoto 所说,您可能需要一个
WHERE子句。现在的查询将更新表中的每一行并将每个Pname设置为相同的值(`prdname.Text)。 -
“Pid= 在哪里?”像这样?