首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

在页面上对TextBox的值进行的修改,传回数据库时不成功解决思路

2012-04-12 
在页面上对TextBox的值进行的修改,传回数据库时不成功利用IntiData方法对页面进行初始化C# codepublic voi

在页面上对TextBox的值进行的修改,传回数据库时不成功
利用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语句去数据库里面执行看看

热点排行