【发布时间】:2013-01-25 10:50:04
【问题描述】:
我有以下TextChanged 事件-
protected void DataList1_SelectedTextChanged(object sender, EventArgs e)
{
TextBox chk = (TextBox)sender;
DataListItem item = (DataListItem)chk.NamingContainer;
TextBox txt = (TextBox)DataList1.Items[item.ItemIndex].FindControl("aTextBox");
string text = txt.Text;
WebService1 ws = new WebService1();
ws.updateA(text, newText)
}
ws.updateA web 方法需要 text 是文本框中的原始文本,newText 是触发更改事件后的文本。
我的问题是如何区分原始文本和要在 web 方法中使用的 newText,因为该方法是使用新文本更新数据表使用原始文本进行更新?
SQL 是 -
UPDATE table SET term='" + newText + "' WHERE termText= '" + text + "'
【问题讨论】:
-
所以您的 sql 中存在需要旧值的问题。这是无稽之谈,因为数据库最了解所有旧值。要识别记录,您通常使用主键。
-
也许我需要更好的更新声明?
-
您需要一个更好的数据库模型。这个表的主键是什么?通常你会使用一个连续的数字(在 SQL-Server
IDENTITY(1,1)中)作为 PK,然后你使用这个数字作为记录的标识符。那么term这一列就不需要识别了。 -
@Jambo SQL 真的很脆弱。
-
我现在意识到我应该使用标识值而不是原始文本:/
标签: c# asp.net web-services onchange