首先,这个问题,我不知道该如何清晰的表达的出来,我努力试着。我是业余的,我自已编了个进销存软件,东抄西拼吧!现在有这样一个问题。
首先是没如图上的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
|