当前位置:编程学习 > C#/ASP.NET >>

DetailsView更新问题

  public static void ModifyUser(User user)
        {
            string sql = "update Users set LoginId=@LoginId,Name=@Name,Address=@Address,Phone=@Phone,Mail=@Mail where id=@Id";
            SqlParameter[] para = new SqlParameter[]
            {
                new SqlParameter("@LoginId",user.LoginId),
                new SqlParameter("@Name",user.Name),
                new SqlParameter("@Address",user.Address),
                new SqlParameter("@Phone",user.Phone),
                new SqlParameter("@Mail",user.Mail),
                new SqlParameter("@id",user.Id)
            };
            DBHelper.ExecuteCommand(sql, para);
        }





//////////////////////////////////


  protected void DetailsView1_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
    {
        User user = new User();
       // user.Id = this.DetailsView1.FindControl("").ToString();
        user.LoginId = this.DetailsView1.FindControl("TextBox1").ToString();
        user.Name = this.DetailsView1.FindControl("TextBox2").ToString();
        user.Phone = this.DetailsView1.FindControl("TextBox3").ToString();
        user.Mail = this.DetailsView1.FindControl("TextBox4").ToString();
        user.Address = this.DetailsView1.FindControl("TextBox5").ToString();
        UserManager.ModifyUser(user);
    }

为什么这样更新不了 --------------------编程问答-------------------- 1.确认DetailsView已经设置dataKeyNames属性为主键列
2.更新事件写在ItemUpdated中,而不是ItemUpdating --------------------编程问答--------------------
引用楼主 sun_kuku007 的回复:
  public static void ModifyUser(User user)
        {
            string sql = "update Users set LoginId=@LoginId,Name=@Name,Address=@Address,Phone=@Phone,Mail=@Mail where id=@Id";
            SqlParameter[] para = new SqlParameter[]
            {
                new SqlParameter("@LoginId",user.LoginId),
                new SqlParameter("@Name",user.Name),
                new SqlParameter("@Address",user.Address),
                new SqlParameter("@Phone",user.Phone),
                new SqlParameter("@Mail",user.Mail),
                new SqlParameter("@id",user.Id)
            };
            DBHelper.ExecuteCommand(sql, para);
        }


//////////////////////////////////


  protected void DetailsView1_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
    {
        User user = new User();
      // user.Id = this.DetailsView1.FindControl("").ToString();
        user.LoginId = this.DetailsView1.FindControl("TextBox1").ToString();
        user.Name = this.DetailsView1.FindControl("TextBox2").ToString();
        user.Phone = this.DetailsView1.FindControl("TextBox3").ToString();
        user.Mail = this.DetailsView1.FindControl("TextBox4").ToString();
        user.Address = this.DetailsView1.FindControl("TextBox5").ToString();
        UserManager.ModifyUser(user);
    }

为什么这样更新不了

在updating里面怎么没给id属性赋值? --------------------编程问答-------------------- 应该实例化User类的时候出问题了吧 --------------------编程问答-------------------- 要确保 user.Id 有值啊! --------------------编程问答-------------------- user.Id 没有赋值,没有条件执行更新 --------------------编程问答--------------------
// user.Id = this.DetailsView1.FindControl("").ToString(); 


这是干什么? --------------------编程问答-------------------- ````飘过````祝大家圣诞快乐! --------------------编程问答-------------------- DetailsView1_ItemUpdating这里边能写更新??
改为ItemUpdated试试
直接使用 user.LoginId = TextBox1。text.ToString(); 获得值不行吗?
--------------------编程问答-------------------- User user = new User(); 这是新建类
怎么能更新呢?
User user =GetUser();
user这个对象才能更新  --------------------编程问答-------------------- ID没有取到值 --------------------编程问答-------------------- 没有 ID 怎么更新啊???
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,