利用webgrid实现数据的批处理(添加和修改)
1.原理及使用的技术
(1) webgrid的允许添加、允许修改的功能实现即时的更新(DataSet)
(2) 利用SqlDataAdapter的Update方法,更新数据源,达到更新数据库的目的。
2.实现过程
(1) 添加一个webgrid(webgrid1)设置它的AllowAddNew,和AllowEdit的属性为True.
(2) 指定该webgrid的DataMember,并为它添加需要显示的列。
(3) 复制一个与(webgrid1)一模一样的webgrid命名为wgridtmp。
3.代码如下.
private void bind(WebGrid dg)
{
if(chkadd.Checked ==false)
{
DataSet dstmp=new DataSet();
if(!dstmp.Tables.Contains("checks"))
{
dstmp.Tables.Add(sqldst.Tables["checks"].Clone());
}
wgridtmp.DataSource=dstmp;
}
dg.DataSource=sqldst;
dg.DataMember ="checks";
dg.DataBind();
}
private void WebGrid1_AddRow(object sender, ISNet.WebUI.WebGrid.RowEventArgs e)
{
//((DataRow)e.Row.DataRow)["checks_xmbh"]=this.txtxmbh.Text.Trim ();
DataSet dsx=(DataSet)WebGrid1.DataSource;
DataSet dst=(DataSet)wgridtmp.DataSource;
dst.Merge(dsx.Tables["checks"].GetChanges(System.Data.DataRowState.Added),false,System.Data.MissingSchemaAction.Add);
wgridtmp.DataSource=dst;
}
private void save()
{
try
{
DataSet dstmp=(DataSet)this.wgridtmp.DataSource;
if(dstmp!=null)
sqldap.Update(dstmp);
else
{
Response.Write(msg.MessageBox("数据格式、长度及范围有误!"));
}
}
catch(SqlException Ex)
{
Response.Write(msg.MessageBox("数据格式、长度及范围有误,错误号:"+Ex.Number+",详细:"+Ex.Message));
DataSet dserr=(DataSet)this.WebGrid1.DataSource;
dserr.RejectChanges();
this.WebGrid1.DataSource=dserr;
this.WebGrid1.DataBind();
}
finally
{
setwgrid(this.WebGrid1 ,"");
settoolbar(this.Toolbar1,true);
sqldst.Clear();
sqldap.Fill (sqldst,"checks");
}
}