首先,这个问题,我不知道该如何清晰的表达的出来,我努力试着。我是业余的,我自已编了个进销存软件,东抄西拼吧!现在有这样一个问题。
 
 
首先是没如图上的Binding 的。  我用Datagridview表格,做为数据显示的窗口。显示我要查询的商品资料,SqlDataAdapter.fill的方法。填充表格,然后更改数据了  
是用SqlDataAdapter.update的方法。具体代码,下面,我粘贴部分。如今,我想加入一个分页功能,因为数据会多了。我用查到这个 本身有的这个控件,bindingnavigator。这个跟我原来获取数据的方法,不冲突,只要把获到的数据,先放在一个DATATABLE中,再分页显示就行。但更改的时候,就不行了,为什么不行,因为,获取数据时的语句,是固定的,但我改,你不知道,我改了那个。没法用这个方法,我没法在这个界面直接更改数据。  
尽管,我可以采取,最土的方法,直接一个语句,一个的更改。但那感觉很麻烦,而且觉得很容易出错。求教下,是否有什么办法可以做到。  
或者,有什么问题。非常感谢! 
  
[C#] 纯文本查看 复制代码  #region 获取数据
        public DataSet getdataset(string str)//获取数据
        {
            sqlopen();
            SqlDataAdapter slda = new SqlDataAdapter(str, Mysql);
            DataSet mydataset = new DataSet();
            slda.Fill(mydataset);
            sqlclose();
            return mydataset;
        }
        #endregion
        #region 获取数据填充到表格并返回表格
        public  DataTable dbconn(string str2)//获取数据填充到表格并返回表格
        {
            SqlConnection conn2 = new SqlConnection(connstr);// 
            this.slda = new SqlDataAdapter(str2, conn2);//使用统一的公共
            DataTable dtselect = new DataTable();
            int i = this.slda.Fill(dtselect);
            conn2.Close();
            //sqliteclose();
            return dtselect;
        }
        #endregion 
[C#] 纯文本查看 复制代码 #region 更改进行同步
        public Boolean dbupdate(object dgt, string str)//更改进行同步
        {
            System.Windows.Forms.DataGridView dg = (System.Windows.Forms.DataGridView)dgt;//外显的表格 str查询语句
            DataTable dtyuanshi = new DataTable();
            dtyuanshi = dbconn(str);//调动方法获取原始数据
            dtyuanshi.Rows.Clear();//清除数据
            DataTable dtnew = new DataTable();//定义新的更改好的数据表格
            dtnew = (DataTable)dg.DataSource;//设置数据源
            for (int i = 0; i < dtnew.Rows.Count; i++)
            {
                //  MessageBox.Show(dtnew.Rows[i][3].ToString());
                dtyuanshi.ImportRow(dtnew.Rows[i]);//将新的数据复到DTyuanshi中
            }
            try
            {
                //conn.Open();
                sqlopen();
                SqlCommandBuilder slcmbd = new SqlCommandBuilder(this.slda);
                this.slda.Update(dtyuanshi);
                //conn.Close();
                sqlclose();
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.ToString());
                return false;
            }
            dtyuanshi.AcceptChanges();//提交更改
            return true;
        }
        #endregion 
  
 
 
 
i 
 
  
 
 
 |