利用IntiData方法对页面进行初始化
- C# code
public void InitData() { int activityID = Convert.ToInt32(Request.QueryString["activity_id"]); BusinessLogical.Activity activity = new BusinessLogical.Activity(); activity.LoadData(activityID);//从数据库中加载数据 //初始化文本框中的值 TextBoxTitle.Text = activity.Info_Title; TextBoxAddress.Text = activity.Info_Position; TextBoxContent.Text = activity.Info_Content; }
在页面中修改文本框中的值。
然后通过通过鼠标单击事件对返回对数据库的修改
- C# code
protected void ButtonUpdate_Click(object sender, EventArgs e) { BusinessLogical.Activity activity = new BusinessLogical.Activity(); activity.Info_ID = Convert.ToInt32(Request.QueryString["activity_id"]); Hashtable ht = new Hashtable();//新建哈希表并将文本框中修改后的值添加进哈希表中 ht.Add("Info_Title", SqlStringFormat.GetQuotedString(TextBoxTitle.Text)); ht.Add("Info_Address", SqlStringFormat.GetQuotedString(TextBoxAddress.Text)); ht.Add("Info_Content", SqlStringFormat.GetQuotedString(TextBoxContent.Text)); activity.Update(ht);
但是修改并没有完成。数据库和文本框中显示的依然是原来的值。
我进行了如下测试
- C# code
//测试 foreach (DictionaryEntry h in ht) { Response.Write(h.Key.ToString()+h.Value.ToString()); }
结果输出的是文本框中初始化时的值,也就是说对TextBoxTitle.text,TextBoxAddress.Text,TextBoxContent.Text的修改后的值并没有被添加进哈希表ht中
这是什么原因呢?
------解决方案--------------------------------------------------------
- C# code
public void InitData() { if (!IsPostBack) { int activityID = Convert.ToInt32(Request.QueryString["activity_id"]); BusinessLogical.Activity activity = new BusinessLogical.Activity(); activity.LoadData(activityID);//从数据库中加载数据 //初始化文本框中的值 TextBoxTitle.Text = activity.Info_Title; TextBoxAddress.Text = activity.Info_Position; TextBoxContent.Text = activity.Info_Content; }}
------解决方案--------------------------------------------------------
是不是PageLoad中调用了InitData方法,有没有用IsPostBack做一下限制,只第一次加载时调用InitData
------解决方案--------------------------------------------------------
你的Init方法放在if(!IsPostBack)里了么?
页面执行顺序是按了按钮之后先Page_Load,然后再是Click事件所以你的Init又重新给TextBox赋值了 取到的也是以前的值
------解决方案--------------------------------------------------------
调试看一下你的test字符串直接放在数据库里执行能否成功更新数据,如果不行,就需要对sql语句进行修正。
------解决方案--------------------------------------------------------
而且要判断if(!IsPostBack)
------解决方案--------------------------------------------------------
直接用你的SQL语句去数据库里面执行看看