在页面上对TextBox的值进行的修改,传回数据库时不成功
利用IntiData方法对页面进行初始化
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; }
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);
//测试 foreach (DictionaryEntry h in ht) { Response.Write(h.Key.ToString()+h.Value.ToString()); }
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语句去数据库里面执行看看