public partial class SysParam : UserControl
    {
        SqlConnection m_connection;
        SqlDataAdapter m_dataadapter;
        DataSet m_ds;
        SqlCommandBuilder m_cb = null;
        DataRow m_datarow;
        public SysParam()
        {
            InitializeComponent();
        }        private void SysParam_Load(object sender, EventArgs e)
        {
            groupBox1.Dock=DockStyle.Fill ;
            string mysql = "select * from packsysparams";
            m_dataadapter = new SqlDataAdapter(mysql, m_connection);
            if (m_connection.State != ConnectionState.Open)
            {
                m_connection.Close();
                m_connection.Open();
            }
            m_cb = new SqlCommandBuilder(m_dataadapter);
            m_ds = new DataSet();
            m_dataadapter.Fill(m_ds, "packsysparams");
            /*
            textEdit1.DataBindings.Add("Text", m_ds, "packsysparams.myusername");
            textEdit2.DataBindings.Add("Text", m_ds, "packsysparams.mylcd");
            spinEdit1.DataBindings.Add("Value", m_ds, "packsysparams.mystorelimit");
            spinEdit2.DataBindings.Add("value", m_ds, "packsysparams.mystaytime");
            spinEdit3.DataBindings.Add("value", m_ds, "packsysparams.mystorebalance");
            spinEdit4.DataBindings.Add("value", m_ds, "packsysparams.mymonthbalance");
            spinEdit5.DataBindings.Add("value", m_ds, "packsysparams.mydefaultday");
            spinEdit6.DataBindings.Add("value", m_ds, "packsysparams.mycapacity");
            spinEdit7.DataBindings.Add("value", m_ds, "packsysparams.myvacant");
            //checkEdit1.DataBindings.Add("1", m_ds, "packsysparams.myuserelease");
            //checkEdit2.DataBindings.Add("1", m_ds, "packsysparams.myusevacant");
             * */
            if (m_ds.Tables["packsysparams"].Rows.Count > 0)
            {
                textEdit1.Text = m_ds.Tables["packsysparams"].Rows[0]["myusername"].ToString();
                textEdit2.Text = m_ds.Tables["packsysparams"].Rows[0]["mylcd"].ToString();                spinEdit1.Value = Convert.ToDecimal(m_ds.Tables["packsysparams"].Rows[0]["mystorelimit"]);
                spinEdit2.Value = Convert.ToDecimal(m_ds.Tables["packsysparams"].Rows[0]["mystaytime"]);
                spinEdit3.Value = Convert.ToDecimal(m_ds.Tables["packsysparams"].Rows[0]["mystorebalance"]);
                spinEdit4.Value = Convert.ToDecimal(m_ds.Tables["packsysparams"].Rows[0]["mymonthbalance"]);
                spinEdit5.Value = Convert.ToDecimal(m_ds.Tables["packsysparams"].Rows[0]["mydefaultday"]);
                spinEdit6.Value = Convert.ToDecimal(m_ds.Tables["packsysparams"].Rows[0]["mycapacity"]);
                spinEdit7.Value = Convert.ToDecimal(m_ds.Tables["packsysparams"].Rows[0]["myvacant"]);
                checkEdit1.Checked = stringtobool(m_ds.Tables["packsysparams"].Rows[0]["myuserelease"].ToString());
                checkEdit2.Checked = stringtobool(m_ds.Tables["packsysparams"].Rows[0]["myusevacant"].ToString());
            }
            else
            {
                m_datarow=m_ds.Tables["packsysparams"].NewRow();
                m_ds.Tables["packsysparams"].Rows.Add(m_datarow);
            }
        }
        public void SetConnection(SqlConnection con)
        {
            m_connection = con;
        }
        public bool CanAccess(ArrayList list)
        {
            if (list[18].ToString() == "1")//19
            {
                return true;
            }
            return false;
        }        private void simpleButton1_Click(object sender, EventArgs e)
        {
            try
            {
                m_ds.Tables["packsysparams"].Rows[0]["myusername"] = textEdit1.Text;
                m_ds.Tables["packsysparams"].Rows[0]["mylcd"] = textEdit2.Text;                m_ds.Tables["packsysparams"].Rows[0]["mystorelimit"] = spinEdit1.Value;
                m_ds.Tables["packsysparams"].Rows[0]["mystaytime"] = spinEdit2.Value;
                m_ds.Tables["packsysparams"].Rows[0]["mystorebalance"] = spinEdit3.Value;
                m_ds.Tables["packsysparams"].Rows[0]["mymonthbalance"] = spinEdit4.Value;
                m_ds.Tables["packsysparams"].Rows[0]["mydefaultday"] = spinEdit5.Value;
                m_ds.Tables["packsysparams"].Rows[0]["mycapacity"] = spinEdit6.Value;
                m_ds.Tables["packsysparams"].Rows[0]["myvacant"] = spinEdit7.Value;
                m_ds.Tables["packsysparams"].Rows[0]["myuserelease"] = checkEdit1.Checked;
                m_ds.Tables["packsysparams"].Rows[0]["myusevacant"] = checkEdit2.Checked;                m_ds.Tables["packsysparams"].AcceptChanges();                m_ds.AcceptChanges();
                m_dataadapter.Fill (m_ds, "packsysparams");
                m_dataadapter.Update(m_ds, "packsysparams");                MessageBox.Show(m_ds.Tables["packsysparams"].Rows[0]["myuserelease"].ToString());
                MessageBox.Show(m_ds.Tables["packsysparams"].Rows[0]["myvacant"].ToString());
                MessageBox.Show(m_ds.Tables["packsysparams"].Rows[0]["myusername"].ToString());
            }
            catch (SyntaxErrorException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private string CheckOrNot(object obj)
        {
            DevExpress.XtraEditors.CheckEdit tmp = (DevExpress.XtraEditors.CheckEdit)obj;
            if (tmp.Checked)
                return "1";
            else
                return "0";
        }
        private bool stringtobool(string a)
        {
            if ((a == "") || (a == "0"))
                return false;
            else
                return true;
        }
        private void checkEdit1_CheckStateChanged(object sender, EventArgs e)
        {
            m_ds.Tables["packsysparams"].Rows[0]["myuserelease"] = CheckOrNot(checkEdit1);
        }        private void checkEdit2_CheckStateChanged(object sender, EventArgs e)
        {
            m_ds.Tables["packsysparams"].Rows[0]["myusevacant"] = CheckOrNot(checkEdit2);
        }
    }
数据库为sql2000  
packsysparams表
myusername          varchar  50
mylcd               varchar  50
mystorelimit        int      4
mystaytime          int      4
mystorebalance      int      4
mymonthbalance      int      4
mydefaultday        int      4
myuserelease        char     1
myusevacant         char     1
mycapacity          int      4
myvacant            int      4

解决方案 »

  1.   

                    m_ds.Tables["packsysparams"].AcceptChanges();                 m_ds.AcceptChanges(); 
                    m_dataadapter.Fill (m_ds, "packsysparams"); 
                    m_dataadapter.Update(m_ds, "packsysparams"); 
    这个不是更新么
      

  2.   

    你的update只是更新了内在中的ds
    可以绑定commandbuilder更新
      

  3.   

    TO liubin911 
    不会把  这就是更新  书上是这么说的 而且只要m_dataadapter.Update(m_ds, "packsysparams");   
    这句就行了TO hountview 
    commandbuilder 不是已经绑定了m_cb = new SqlCommandBuilder(m_dataadapter); 
      

  4.   


    m_ds你这个DATASET的资料更新了么?
      

  5.   

                   m_ds.Tables["packsysparams"].AcceptChanges(); 
                    m_ds.AcceptChanges(); 
                    m_dataadapter.Fill (m_ds, "packsysparams"); 
                    m_dataadapter.Update(m_ds, "packsysparams"); 
                    MessageBox.Show(m_ds.Tables["packsysparams"].Rows[0]["myuserelease"].ToString()); 
                    MessageBox.Show(m_ds.Tables["packsysparams"].Rows[0]["myvacant"].ToString()); 
                    MessageBox.Show(m_ds.Tables["packsysparams"].Rows[0]["myusername"].ToString()); 
    以上只是messagebox3个 真实代码中全部messagebox,全部正确
      

  6.   

                    m_dataadapter.Fill (m_ds, "packsysparams"); 
                    m_dataadapter.Update(m_ds, "packsysparams"); 
    这算什么啊,m_ds改了那么多数据,你在来个Fill进行重新填充,那改了的数据不都没了
      

  7.   

    sorry..
    m_dataadapter.Fill (m_ds, "packsysparams"); 
    m_dataadapter.Update(m_ds, "packsysparams"); 
    m_ds.AcceptChanges();
    这样可以不?
      

  8.   

    注意!!!!!!!!!Page_Load事件里的代码要判断是不是首次加载
    if(!IsPostBack)
    {
       //你的代码
    }
      

  9.   

    要是WinForm,一般是Adapter的UpdateCommand没有设置。
    还有,你的代码好象在UPdate前面Fill了一下,等于把之前的修改都清掉了吧?
      

  10.   

    试过了,以下组合无效
    1、
    m_ds.Tables["packsysparams"].AcceptChanges();  
    m_ds.AcceptChanges();  
    m_dataadapter.Update(m_ds, "packsysparams");
    2、
    m_ds.Tables["packsysparams"].AcceptChanges();
    m_ds.AcceptChanges();
    m_dataadapter.Fill (m_ds, "packsysparams");
    3、
    m_ds.Tables["packsysparams"].AcceptChanges();
    m_ds.AcceptChanges();
      

  11.   

    只有一条数据
    数据库为sql2000   
    packsysparams表 
    myusername          varchar  50 关键字
    mylcd               varchar  50 
    mystorelimit        int      4 
    mystaytime          int      4 
    mystorebalance      int      4 
    mymonthbalance      int      4 
    mydefaultday        int      4 
    myuserelease        char     1 
    myusevacant         char     1 
    mycapacity          int      4 
    myvacant            int      4