(4) Common 项目
为了使得各层之间在传递数据时具有统一的数据接口,在三个层次对应的项目之外又开发了一个Common 项目。在这个项目中定义了四个类:
DirectoryData、AricleData、UserData 和RightData.这些类都派生自System.Data.DataSet 类,在每个DataSet 中定义了一些DataTable 用来按照固定的格式存储相应的数据。
对于Web、BusinessFacade 和DataAccess 项目中定义的类, 其成员函数的参数和返回值的类型就可以采用Common 项目中定义的类, 这些类就是不同层之间数据传送的标准接口。
附加代码:
在ASP.NET 支持下,利用ADO.NET 可方便地访问基于Web 的数据库,不管数据源是关系数据库、非结构的数据库、文字数据库(如XML文件),还是如Microsoft Excel 一样的表格数据库,都可通过ADO.NET来存取。
在实现远程数据库时,需要将ADO 与RDS 集成使用,以实现高性能、高可靠性的远程操作功能。
DataGrid 控件的更新Code 如下:
控件的更新Code 如下:
void editcommand (Object sender, DataGridCommandEventArgs e){grid1.EditItemIndex = (int)e.Item.ItemIndex;//重新读取数据并进行绑定 bindgrid();}void Cancelcommand (Object sender, DataGridCommandEventArgs e){grid1.EditItemIndex = -1;//重新读取数据并进行绑定 bindgrid();}void updatecommand (Object sender ,DataGridCommandEventArgs e){//利用Sql 语句实现数据的更新 string xm = grid1.DataKeys[(int)e.Item.ItemIndex];string cols;int numcols = e.Item. Cells.Count;for (int i = 2; i < numcols; i++){//取出各编辑框的值 String colvalue = ((TextBox)e.Item.Cells[i].Controls[0]).Text; cols[i-2] = colvalue ;}string updatecmd ="UPDATE reg SET name =''"+ cols[0 ] +"'',";updatecmd +="sex =''"+ cols +"'',addr =''"+ cols +"'',";updatecmd +="dh =''"+ cols +"'' where name =" + xm;SqlCommand mycommand = new SqlCommand(updatecmd, myconnection);mycommand.Connection.Open(); //打开数据连接 mycommand.ExecuteNonQuery(); //执行连接 grid1.EditItemIndex = -1; //连接成功,返回初始状态 mycommand.Connection.Close(); //关闭连接 bindgrid(); //重新读取数据并绑定}void bindgrid(){//数据绑定 SqlDataAdapter mycommand = new SqlDataAdapter("select * from reg", myconnection); DataSet ds = new DataSet(); mycommand.Fill(ds,"reg"); grid1.DataSource = ds.Tables["reg"].DefaultView; grid1.DataBind();}