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 --------------------编程问答--------------------
在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