大家好。我这有个类。主要是实现添加、更新和删除。public class Addstaff : Page
{
    // Fields
    protected Button cancelBTN;
    protected Button createBTN;
    protected DropDownList ddl_archives;
    protected TextBox dept;
    protected TextBox image_big;
    protected TextBox image_small;
    protected TextBox intro;
    protected TextBox orderid;
    protected RequiredFieldValidator RequiredCnName;
    protected RequiredFieldValidator RequiredEnName;
    protected RequiredFieldValidator RequiredFieldValidator1;
    protected RequiredFieldValidator RequiredImage;
    protected RequiredFieldValidator RequiredIntro;
    protected TextBox staffcode;
    protected Button updateBTN;
    protected TextBox username;    // Methods
    protected void cancelBTN_Click(object sender, EventArgs e)
    {
        DALHelper.ExecuteNonQuery("sql", " delete from po_staff where id=" + base.Request.QueryString["id"]);
        Helper.Result(this, "操作成功", "stafflist.aspx");
    }    protected void createBTN_Click(object sender, EventArgs e)
    {
        string commandText = " select count(*) from po_staff where username='" + this.username.Text.Trim() + "' ";
        if (int.Parse(DALHelper.ExecuteScalar("sql", commandText).ToString()) > 0)
        {
            Helper.Result(this, "用户名已经存在");
        }
        else
        {
            SqlParameter[] commandParameters = new SqlParameter[] { new SqlParameter("@username", this.username.Text), new SqlParameter("@staffcode", this.staffcode.Text), new SqlParameter("@dept", this.dept.Text), new SqlParameter("@intro", this.intro.Text), new SqlParameter("@image_big", this.image_big.Text), new SqlParameter("@image_small", this.image_small.Text), new SqlParameter("@orderid", this.orderid.Text), new SqlParameter("@poid", this.ddl_archives.SelectedItem.Value) };
            commandText = "\r\n            insert into po_staff(username,staffcode,dept,intro,image_small,image_big, orderid, poid)values\r\n              (@username,@staffcode,@dept,@intro,@image_small,@image_big,@orderid,@poid )\r\n             ";
            DALHelper.ExecuteNonQuery(DALHelper.GetCon(), CommandType.Text, commandText, commandParameters);
            Helper.ResultRefresh(this, "操作成功,您可以继续添加候选人");
        }
    }    protected void Page_Load(object sender, EventArgs e)
    {
        DataSet set;
        if (!this.Page.IsPostBack)
        {
            set = DALHelper.ExecuteDataset("sql", " select id, votename from po_config order by id desc ");
            this.ddl_archives.DataSource = set;
            this.ddl_archives.DataTextField = "votename";
            this.ddl_archives.DataValueField = "id";
            this.ddl_archives.DataBind();
        }
        if (base.Request.QueryString["id"] != null)
        {
            this.createBTN.Visible = false;
            this.updateBTN.Visible = true;
            this.cancelBTN.Visible = true;
            set = DALHelper.ExecuteDataset("sql", " select * from po_staff where id=" + base.Request.QueryString["id"]);
            this.username.Text = set.Tables[0].Rows[0]["username"].ToString();
            this.staffcode.Text = set.Tables[0].Rows[0]["staffcode"].ToString();
            this.intro.Text = set.Tables[0].Rows[0]["intro"].ToString();
            this.image_small.Text = set.Tables[0].Rows[0]["image_small"].ToString();
            this.image_big.Text = set.Tables[0].Rows[0]["image_big"].ToString();
            this.dept.Text = set.Tables[0].Rows[0]["dept"].ToString();
            this.orderid.Text = set.Tables[0].Rows[0]["orderid"].ToString();
            this.username.Enabled = false;
            try
            {
                this.ddl_archives.SelectedValue = set.Tables[0].Rows[0]["poid"].ToString();
            }
            catch
            {
            }
        }
        else
        {
            this.username.Enabled = true;
            this.createBTN.Visible = true;
            this.updateBTN.Visible = false;
            this.cancelBTN.Visible = false;
        }
    }    protected void updateBTN_Click(object sender, EventArgs e)
    {
        SqlParameter[] commandParameters = new SqlParameter[] { new SqlParameter("@id", base.Request.QueryString["id"]), new SqlParameter("@staffcode", this.staffcode.Text), new SqlParameter("@dept", this.dept.Text), new SqlParameter("@intro", this.intro.Text), new SqlParameter("@image_big", this.image_big.Text), new SqlParameter("@image_small", this.image_small.Text), new SqlParameter("@orderid", this.orderid.Text), new SqlParameter("@poid", this.ddl_archives.SelectedItem.Value) };
        string commandText = "\r\n           update po_staff set \r\n          staffcode=@staffcode,\r\n          intro=@intro, \r\n          image_small=@image_small, \r\n          image_big=@image_big,\r\n          dept=@dept,\r\n          orderid=@orderid,\r\n          poid=@poid\r\n          where  id=@id\r\n             ";
        DALHelper.ExecuteNonQuery(DALHelper.GetCon(), CommandType.Text, commandText, commandParameters);
        Helper.Result(this, "操作成功", "stafflist.aspx");
    }
}添加:从表单里获得数据添加进入数据库更新:从数据库读取数据更改后修改数据库数据删除:直接删除数据库数据添加和删除都正常,但是更新时虽然弹出了“操作成功”,但是数据库的数据根本没有改变,update语句失效了。这是什么问题?谢谢大家了。附:界面截图添加
更新和删除

解决方案 »

  1.   

    估计是new SqlParameter("@id", base.Request.QueryString["id"])这个id不有传值过来,没有符合条件的记录,不会报错,也不会更新。你查一下是否影响行数?
      

  2.   


    我试了直接修改update语句,把其中某个字段手动赋值而不从表单获取,可以更新。比如我把“简介"直接赋1111111111111111能更新。说明id值应该传过来了。string commandText = "\r\n           update po_staff set \r\n          staffcode=@staffcode,\r\n          intro=1111111111111111, \r\n          image_small=@image_small, \r\n          image_big=@image_big,\r\n          dept=@dept,\r\n          orderid=@orderid,\r\n          poid=@poid\r\n          where  id=@id\r\n             ";
      

  3.   

    DALHelper.ExecuteNonQuery(DALHelper.GetCon(), CommandType.Text, commandText, commandParameters);这一行打个断点吧   看看执行的sql语句是什么,拷出来放到查询分析器里去执行估计就清楚了
      

  4.   

    sql语句可能有错误,把update的语句打出来,查一查
      

  5.   

    我怀疑是我点‘更新’的时候会不会没把我修改后的数据传过来,而还是读取的之前的数据。虽然更新了但数据没变。因为我直接赋值还是能更新的。至少执行了update语句。那代码哪出问题了?
      

  6.   

    进DALHelper.ExecuteNonQuery 调试下吧 
      

  7.   

    自己打断点调试啊,看一下commandText的值