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

数据库更新成功,但是数据没有改变解决办法

2012-01-24 
数据库更新成功,但是数据没有改变用的是sqldatasourceasp:SqlDataSourceID SqlDataSource1 runat se

数据库更新成功,但是数据没有改变
用的是sqldatasource
<asp:SqlDataSource   ID= "SqlDataSource1 "   runat= "server "   ConnectionString= " <%$   ConnectionStrings:EBusinessConnectionString   %> "
                OnUpdated= "SqlDataSource1_Updated "   ProviderName= " <%$   ConnectionStrings:EBusinessConnectionString.ProviderName   %> "
                UpdateCommand= "UPDATE   Categories   SET   name   =@newname   where   category_id=@newcategory_id; ">
                <UpdateParameters>
                        <asp:ControlParameter   ControlID= "name "   Name= "newname "   PropertyName= "Text "   />
                        <asp:SessionParameter   Name= "newcategory_id "   SessionField= "category_id "   />
                </UpdateParameters>
        </asp:SqlDataSource>
后台代码:
public   partial   class   Admin_categories_edit   :   System.Web.UI.Page
{
        protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                name.Text   =   Session[ "name "].ToString().Trim();
        }
 
        protected   void   Button2_Click(object   sender,   EventArgs   e)
        {
                Response.Redirect( "categories_mgr.aspx ");
        }

        protected   void   SqlDataSource1_Updated(object   sender,   SqlDataSourceStatusEventArgs   e)
        {
                if   (e.AffectedRows   >   0)
                {
                        //   Perform   any   additional   processing,   such   as   sending   an   e-mail   notification.
                        Label1.Text   =   Request.LogonUserIdentity.Name   +
                                "   changed   user   information   sucessfully! ";
                }
                else
                {
                        Label1.Text   =   "No   data   updated! ";
                }
        }
        protected   void   Button1_Click(object   sender,   EventArgs   e)
        {
                try
                {


                        SqlDataSource1.Update();
                }
                catch   (Exception   err)
                {
                        Label1.Text   =   err.Message;
                }
        }
}
总能显示e.AffectedRows   >   0出现的changed   user   information   sucessfully,但是数据库中显示的数据还是原来那个,我想可能是改变的数据是老数据,但是为什么会这个样子?还有我不想用ado或者其他办法解决,因为ms这个以后用着快些:)

[解决办法]
name.Text = Session[ "name "].ToString().Trim();==> if(!this.IsPostBack){ name.Text = Session[ "name "].ToString().Trim();}
[解决办法]

if(!this.IsPostBack)
{
name.Text = Session[ "name "].ToString().Trim();
}


..........
[解决办法]
name.Text = Session[ "name "].ToString().Trim();
看了半天
如果说我没有看错,你应该是这样的一种情况
首先你肯定是Update成功了的,也就是说你的e.AffectedRows > 0恒真
你仔细看看你的那条更新语句
(UPDATE Categories SET name =@newname where category_id=@newcategory_id)
应该是把当前满足条件的name字段赋值你登录的Session[ "name "]
可你的Session[ "name "]和数据库中那个记录的当前值进一致,所以才是显示修改成功,可以值又没有改变.
关注中,有消息说~

热点排行