sql2005的xml字段类型在.net中的应用2
点击次数:32 次 发布日期:2008-11-26 11:30:09 作者:源代码网
|
源代码网推荐 源代码网推荐 /// <summary> 源代码网推荐 /// 服务器群信息集合 源代码网推荐 /// </summary> 源代码网推荐 /// <remarks> 源代码网推荐 [Serializable()] 源代码网推荐 [XmlRoot("ServerGroups")] 源代码网推荐 public class MServerGroupCollection : List<MServerGroup> 源代码网推荐 { 源代码网推荐 /// <summary> 源代码网推荐 /// 服务器群信息集合 源代码网推荐 /// </summary> 源代码网推荐 public MServerGroupCollection() 源代码网推荐 { 源代码网推荐 this._MServerGroups = new List<MServerGroup>(); 源代码网推荐 } 源代码网推荐 源代码网推荐 private List<MServerGroup> _MServerGroups; 源代码网推荐 源代码网推荐 public List<MServerGroup> MServerGroups 源代码网推荐 { 源代码网推荐 get 源代码网推荐 { 源代码网推荐 return this._MServerGroups; 源代码网推荐 } 源代码网推荐 set 源代码网推荐 { 源代码网推荐 this._MServerGroups = value; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 /// <summary> 源代码网推荐 /// 服务器群下的服务器信息集合 源代码网推荐 /// </summary> 源代码网推荐 [XmlRoot("Servers")] 源代码网推荐 [Serializable()] 源代码网推荐 public class MServerCollection : List<MServer> 源代码网推荐 { 源代码网推荐 /// <summary> 源代码网推荐 /// 服务器群下的服务器信息集合 源代码网推荐 /// </summary> 源代码网推荐 public MServerCollection() 源代码网推荐 { 源代码网推荐 this._MServers = new List<MServer>(); 源代码网推荐 } 源代码网推荐 源代码网推荐 private List<MServer> _MServers; 源代码网推荐 源代码网推荐 public List<MServer> MServers 源代码网推荐 { 源代码网推荐 get 源代码网推荐 { 源代码网推荐 return this._MServers; 源代码网推荐 } 源代码网推荐 set 源代码网推荐 { 源代码网推荐 this._MServers = value; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 /// <summary> 源代码网推荐 /// 服务器对应的店铺集合 源代码网推荐 /// </summary> 源代码网推荐 [Serializable()] 源代码网推荐 [XmlRoot(ElementName = "Shops", Namespace = "http://www.linkedu.com.cn/MServerShop.xsd")] 源代码网推荐 public class MServerShopCollection 源代码网推荐 { 源代码网推荐 private List<MServerShop> _MServerShops; 源代码网推荐 源代码网推荐 [XmlElement("Shop")] 源代码网推荐 public List<MServerShop> MServerShops 源代码网推荐 { 源代码网推荐 get 源代码网推荐 { 源代码网推荐 return this._MServerShops; 源代码网推荐 } 源代码网推荐 set 源代码网推荐 { 源代码网推荐 this._MServerShops = value; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 /// <summary> 源代码网推荐 /// 服务器对应的店铺集合类 源代码网推荐 /// </summary> 源代码网推荐 public MServerShopCollection() 源代码网推荐 { 源代码网推荐 this._MServerShops = new List<MServerShop>(); 源代码网推荐 } 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 经分析,服务器对应的店铺信息可用xml存储,设计格式如下(用xsd描述,设计好后,我们把它创建到数据库中) 源代码网推荐 CREATE XML SCHEMA COLLECTION [dbo].[MServerShop] AS 源代码网推荐 N"<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:t="http://www.linkedu.com.cn/MServerShop.xsd" targetNamespace="http://www.linkedu.com.cn/MServerShop.xsd" elementFormDefault="qualified"> 源代码网推荐 <xsd:element name="Shops"> 源代码网推荐 <xsd:complexType> 源代码网推荐 <xsd:complexContent> 源代码网推荐 <xsd:restriction base="xsd:anyType"> 源代码网推荐 <xsd:sequence> 源代码网推荐 <xsd:element name="Shop" type="t:ServerShop" minOccurs="0" maxOccurs="unbounded" /> 源代码网推荐 </xsd:sequence> 源代码网推荐 </xsd:restriction> 源代码网推荐 </xsd:complexContent> 源代码网推荐 </xsd:complexType> 源代码网推荐 </xsd:element> 源代码网推荐 <xsd:complexType name="ServerShop"> 源代码网推荐 <xsd:complexContent> 源代码网推荐 <xsd:restriction base="xsd:anyType"> 源代码网推荐 <xsd:sequence /> 源代码网推荐 <xsd:attribute name="ShopID" type="xsd:int" use="required" /> 源代码网推荐 <xsd:attribute name="ShopName" type="xsd:string" use="required" /> 源代码网推荐 </xsd:restriction> 源代码网推荐 </xsd:complexContent> 源代码网推荐 </xsd:complexType> 源代码网推荐 </xsd:schema>" 源代码网推荐 源代码网推荐 最后,我设计了(服务器群信息 ES_ServerGroup),(服务器群下的服务器信息 ES_Server)的数据表, 在 ES_Server 数据表中,我们把服务器对应的店铺信息放在ES_Server数据表下用xml表示,并加入上边设计的xsd约束。 源代码网推荐 源代码网推荐 CREATE TABLE [dbo].[ES_ServerGroup]( 源代码网推荐 [ServerGroupID] [int] NOT NULL, 源代码网推荐 [ServerGroupName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, 源代码网推荐 CONSTRAINT [PK_ES_SERVERGROUP] PRIMARY KEY CLUSTERED 源代码网推荐 ( 源代码网推荐 [ServerGroupID] ASC 源代码网推荐 )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] 源代码网推荐 ) ON [PRIMARY] 源代码网推荐 源代码网推荐 CREATE TABLE [dbo].[ES_Server]( 源代码网推荐 [ServerID] [int] NOT NULL, 源代码网推荐 [ServerGroupID] [int] NULL, 源代码网推荐 [ServerName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, 源代码网推荐 [IP] [nvarchar](15) COLLATE Chinese_PRC_CI_AS NULL, 源代码网推荐 [DomainName] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL, 源代码网推荐 [Dir] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL, 源代码网推荐 [Url] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL, 源代码网推荐 [ServerShops] [xml](CONTENT [dbo].[MServerShop]) NULL, 源代码网推荐 CONSTRAINT [PK_ES_SERVER] PRIMARY KEY CLUSTERED 源代码网推荐 ( 源代码网推荐 [ServerID] ASC 源代码网推荐 )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] 源代码网推荐 ) ON [PRIMARY] 源代码网推荐 源代码网推荐 下一步,我开始设计数据访问接口,然后设计数据访问层和业务层,最后设计表现层。 源代码网推荐 为了演示方便,Demo中我省去了接口的书写和业务层,我在表现层直接调用了数据访问层 源代码网推荐 源代码网推荐 数据访问层代码如下: 源代码网推荐 源代码网推荐 /// <summary> 源代码网推荐 /// 服务器群下的服务器信息数据访问层 源代码网推荐 /// </summary> 源代码网推荐 public class DServer 源代码网推荐 { 源代码网推荐 #region constructor 源代码网推荐 public DServer() 源代码网推荐 { 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region public method 源代码网推荐 源代码网推荐 #region 得到当前 源代码网推荐 源代码网推荐 #region 得到某服务器信息 MServer GetMServer(int _ServerID) 源代码网推荐 /// <summary> 源代码网推荐 /// 得到某服务器信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerID">服务器的ServerID</param> 源代码网推荐 /// <returns>得到某服务器信息</returns> 源代码网推荐 public MServer GetMServer(int _ServerID) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.AddSql("select * from ES_Server where "); 源代码网推荐 m.AddSql(" ServerID="); 源代码网推荐 m.AddSql("ServerID", _ServerID); 源代码网推荐 using (IDataReader idr = m.ExecuteReader(conn)) 源代码网推荐 { 源代码网推荐 if (idr.Read()) 源代码网推荐 { 源代码网推荐 return new MServer(_ServerID, idr["ServerName"].ToString(), idr["IP"].ToString(), idr["DomainName"].ToString(), idr["Dir"].ToString(), idr["Url"].ToString(), (int)idr["ServerGroupID"], idr["ServerShops"].ToString()); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 return null; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 关于MServerShop的操作 源代码网推荐 源代码网推荐 #region 得到服务器对应的店铺集合 MServerShopCollection GetMServerShop(int _ServerID) 源代码网推荐 /// <summary> 源代码网推荐 /// 得到服务器对应的店铺集合 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerID">服务器的ServerID</param> 源代码网推荐 /// <returns>得到服务器对应的店铺数组</returns> 源代码网推荐 public MServerShopCollection GetMServerShop(int _ServerID) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.AddSql("select ServerShops from ES_Server where "); 源代码网推荐 m.AddSql(" ServerID="); 源代码网推荐 m.AddSql("ServerID", _ServerID); 源代码网推荐 string xmlstr = m.ExecuteScalar(conn).ToString(); 源代码网推荐 return Common.Utilities.SerializationHelper<MServerShopCollection>.FromXML(xmlstr); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 保存服务器对应的店铺信息 void SaveMServerShops(int _ServerID, MServerShopCollection _ServerShops) 源代码网推荐 /// <summary> 源代码网推荐 /// 保存服务器对应的店铺信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerID">服务器的ServerID</param> 源代码网推荐 /// <param name="_ServerShops">服务器对应的店铺信息集合</param> 源代码网推荐 public void SaveMServerShops(int _ServerID, MServerShopCollection _ServerShops) 源代码网推荐 { 源代码网推荐 string xmlStr = Common.Utilities.SerializationHelper<MServerShopCollection>.ToXML(_ServerShops); 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.AddSql("update ES_Server set ServerShops=N""); 源代码网推荐 m.AddSql(xmlStr); 源代码网推荐 m.AddSql("" where ServerID="); 源代码网推荐 m.AddSql(_ServerID.ToString()); 源代码网推荐 m.ExecuteNonQuery(conn); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 添加服务器对应的店铺信息 void AddMServerShop(int _ServerID, MServerShop _ServerShop) 源代码网推荐 /// <summary> 源代码网推荐 /// 添加服务器对应的店铺信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerID">服务器的ServerID</param> 源代码网推荐 /// <param name="_ServerShop">服务器对应的店铺信息</param> 源代码网推荐 public void AddMServerShop(int _ServerID, MServerShop _ServerShop) 源代码网推荐 { 源代码网推荐 //update ES_Server set ServerShops.modify("declare namespace mi="http://www.linkedu.com.cn/MServerShop.xsd"; insert (<mi:Shop ShopID="3" ShopName="hopName3" />) as first into (//mi:Shops)[1]") where ServerID=1 源代码网推荐 //SELECT ServerID FROM ES_Server WHERE ServerID=1 and ServerShops.exist("declare namespace mi="http://www.linkedu.com.cn/MServerShop.xsd"; //mi:Shops/mi:Shop[@ShopID=4]")=1 源代码网推荐 //select ServerShops.value("declare namespace mi="http://www.linkedu.com.cn/MServerShop.xsd"; (//mi:Shops/mi:Shop/@ShopID)[1]=4", "bit") as ShopID from ES_Server where ServerID=1 if @@rowcount > 0 begin select 1 end 源代码网推荐 string xmlStr = Common.Utilities.SerializationHelper<MServerShop>.ToXML(_ServerShop, "mi"); 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.AddSql("SELECT ServerID FROM ES_Server WHERE ServerID=" + _ServerID.ToString()); 源代码网推荐 m.AddSql(" and ServerShops.exist("declare namespace mi="http://www.linkedu.com.cn/MServerShop.xsd"; //mi:Shops/mi:Shop[@ShopID=" + _ServerShop.ShopID.ToString() + "]")=1"); 源代码网推荐 m.AddSql(" if @@rowcount = 0 begin "); 源代码网推荐 m.AddSql("update ES_Server set ServerShops.modify("declare namespace mi="http://www.linkedu.com.cn/MServerShop.xsd"; insert ("); 源代码网推荐 m.AddSql(xmlStr); 源代码网推荐 m.AddSql(") as first into (//mi:Shops)[1]") where ServerID=" + _ServerID.ToString() + " end"); 源代码网推荐 m.ExecuteNonQuery(conn); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 删除服务器对应的店铺信息 void DeleteMServerShop(int _ServerID, int _ShopID) 源代码网推荐 /// <summary> 源代码网推荐 /// 删除服务器对应的店铺信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerID">服务器的ServerID</param> 源代码网推荐 /// <param name="_ShopID">店铺ID</param> 源代码网推荐 public void DeleteMServerShop(int _ServerID, int _ShopID) 源代码网推荐 { 源代码网推荐 /* 源代码网推荐 UPDATE ES_Server 源代码网推荐 SET ServerShops.modify("declare namespace mi="http://www.linkedu.com.cn/MServerShop.xsd"; 源代码网推荐 delete /mi:Shops/mi:Shop[@ShopID=1]") where ServerID=1 源代码网推荐 */ 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.AddSql("UPDATE ES_Server SET ServerShops.modify("declare namespace mi="http://www.linkedu.com.cn/MServerShop.xsd";delete /mi:Shops/mi:Shop[@ShopID=" + _ShopID + "]") where ServerID=" + _ServerID); 源代码网推荐 m.ExecuteNonQuery(conn); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 修改服务器对应的店铺信息 void ModifyMServerShop(int _ServerID, MServerShop _ServerShop) 源代码网推荐 /// <summary> 源代码网推荐 /// 修改服务器对应的店铺信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerID">服务器的ServerID</param> 源代码网推荐 /// <param name="_ServerShop">服务器对应的店铺信息,其中以_ServerShop的ShopID属性为主键</param> 源代码网推荐 public void ModifyMServerShop(int _ServerID, MServerShop _ServerShop) 源代码网推荐 { 源代码网推荐 //UPDATE ES_Server SET ServerShops.modify("declare namespace mi="http://www.linkedu.com.cn/MServerShop.xsd";replace value of (/mi:Shops/mi:Shop[@ShopID=128780281]/@ShopName)[1] with "ShopNamex"") where ServerID=1 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.AddSql("UPDATE ES_Server SET ServerShops.modify("declare namespace mi="http://www.linkedu.com.cn/MServerShop.xsd";replace value of (/mi:Shops/mi:Shop[@ShopID=" + _ServerShop.ShopID + "]/@ShopName)[1] with "" + _ServerShop.ShopName + """) where ServerID=" + _ServerID); 源代码网推荐 m.ExecuteNonQuery(conn); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 增删改 源代码网推荐 #region 添加服务器信息 int Add(int _ServerID, string _ServerName, string _IP, string _DomainName, string _Dir, string _Url, int _ServerGroupID) 源代码网推荐 /// <summary> 源代码网推荐 /// 添加服务器信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerID">服务器ID</param> 源代码网推荐 /// <param name="_ServerName">服务器名称</param> 源代码网推荐 /// <param name="_IP">服务器IP</param> 源代码网推荐 /// <param name="_DomainName">服务器域名</param> 源代码网推荐 /// <param name="_Dir">文件存放目录</param> 源代码网推荐 /// <param name="_Url">文件存放Url</param> 源代码网推荐 /// <param name="_ServerGroupID">对应的服务器群ID</param> 源代码网推荐 /// <param name="_ServerShops">服务器对应的店铺信息</param> 源代码网推荐 /// <returns>新加服务器是否成功</returns> 源代码网推荐 public bool Add(int _ServerID, string _ServerName, string _IP, string _DomainName, string _Dir, string _Url, int _ServerGroupID) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 Common.Utilities.ListDic<string, object> ld = new Common.Utilities.ListDic<string, object>(); 源代码网推荐 ld.Add("ServerID", _ServerID); 源代码网推荐 ld.Add("ServerName", _ServerName); 源代码网推荐 ld.Add("IP", _IP); 源代码网推荐 ld.Add("DomainName", _DomainName); 源代码网推荐 ld.Add("Dir", _Dir); 源代码网推荐 ld.Add("Url", _Url); 源代码网推荐 ld.Add("ServerGroupID", _ServerGroupID); 源代码网推荐 m.Insert(ld, "ES_Server"); 源代码网推荐 return m.ExecuteNonQuery(conn) > 0; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 修改服务器信息 bool Modify(int _ServerID, string _ServerName, string _IP, string _DomainName, string _Dir, string _Url, int _ServerGroupID) 源代码网推荐 /// <summary> 源代码网推荐 /// 修改服务器信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerID">服务器ID</param> 源代码网推荐 /// <param name="_ServerName">服务器名称</param> 源代码网推荐 /// <param name="_IP">服务器IP</param> 源代码网推荐 /// <param name="_DomainName">服务器域名</param> 源代码网推荐 /// <param name="_Dir">文件存放目录</param> 源代码网推荐 /// <param name="_Url">文件存放Url</param> 源代码网推荐 /// <param name="_ServerGroupID">对应的服务器群ID</param> 源代码网推荐 /// <param name="_ServerShops">服务器对应的店铺信息</param> 源代码网推荐 /// <returns>是否成功</returns> 源代码网推荐 public bool Modify(int _ServerID, string _ServerName, string _IP, string _DomainName, string _Dir, string _Url, int _ServerGroupID) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 Common.Utilities.ListDic<string, object> ld = new Common.Utilities.ListDic<string, object>(); 源代码网推荐 ld.Add("ServerName", _ServerName); 源代码网推荐 ld.Add("IP", _IP); 源代码网推荐 ld.Add("DomainName", _DomainName); 源代码网推荐 ld.Add("Dir", _Dir); 源代码网推荐 ld.Add("Url", _Url); 源代码网推荐 ld.Add("ServerGroupID", _ServerGroupID); 源代码网推荐 m.Update(ld, "ES_Server"); 源代码网推荐 m.AddSql(" where ServerID="); 源代码网推荐 m.AddSql("ServerID", _ServerID); 源代码网推荐 源代码网推荐 return m.ExecuteNonQuery(conn) > 0; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 删除服务器信息 bool Delete(int _ServerID) 源代码网推荐 /// <summary> 源代码网推荐 /// 删除服务器信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerID">服务器的ServerID</param> 源代码网推荐 /// <returns>是否成功</returns> 源代码网推荐 public bool Delete(int _ServerID) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.Delete("ES_Server"); 源代码网推荐 m.AddSql(" where ServerID="); 源代码网推荐 m.AddSql("ServerID", _ServerID); 源代码网推荐 源代码网推荐 return m.ExecuteNonQuery(conn) > 0; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 得到其它 源代码网推荐 #region 得到此服务器所属服务器群信息 MServerGroup GetServerGroup(int _ServerID) 源代码网推荐 /// <summary> 源代码网推荐 /// 得到此服务器所属服务器群信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerID">服务器ID</param> 源代码网推荐 /// <returns>得到此服务器所属服务器群信息</returns> 源代码网推荐 public MServerGroup GetServerGroup(int _ServerID) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.AddSql("select * from ES_ServerGroup where ServerGroupID = (select ServerGroupID from ES_Server where ServerID="); 源代码网推荐 m.AddSql("ServerID", _ServerID); 源代码网推荐 m.AddSql(")"); 源代码网推荐 using (IDataReader idr = m.ExecuteReader(conn)) 源代码网推荐 { 源代码网推荐 return Common.Entity.ModelEntityHelp<MServerGroup>.Get_IList(idr)[0]; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region static 源代码网推荐 /// <summary> 源代码网推荐 /// 工厂方法得到DServer对象 源代码网推荐 /// </summary> 源代码网推荐 /// <returns>DServer对象</returns> 源代码网推荐 public static DServer Factory() 源代码网推荐 { 源代码网推荐 return Common.Singleton.Provider<DServer>.Instance; 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 } 源代码网推荐 源代码网推荐 /// <summary> 源代码网推荐 /// 服务器群信息数据访问层 源代码网推荐 /// </summary> 源代码网推荐 public class DServerGroup 源代码网推荐 { 源代码网推荐 #region constructor 源代码网推荐 public DServerGroup() 源代码网推荐 { 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region public method 源代码网推荐 源代码网推荐 #region 得到当前 源代码网推荐 #region 得到所有服务器群信息 MServerGroupCollection GetAllServerGroup() 源代码网推荐 /// <summary> 源代码网推荐 /// 得到所有服务器群信息 源代码网推荐 /// </summary> 源代码网推荐 /// <returns>所有服务器群信息</returns> 源代码网推荐 public MServerGroupCollection GetAllServerGroup() 源代码网推荐 { 源代码网推荐 string sql = "select * from ES_ServerGroup"; 源代码网推荐 DataTable dt = SqlTools.HelpWWW.ExecuteDataTable(CommandType.Text, sql); 源代码网推荐 return Common.Entity.ModelEntityCollectionHelp<MServerGroup, MServerGroupCollection>.Get_Collection(dt); 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 得到某服务器群信息 MServerGroup GetMServerGroup(int _ServerGroupID) 源代码网推荐 /// <summary> 源代码网推荐 /// 得到某服务器群信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerGroupID">服务器群的ServerGroupID</param> 源代码网推荐 /// <returns>得到某服务器群信息</returns> 源代码网推荐 public MServerGroup GetMServerGroup(int _ServerGroupID) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.AddSql("select * from ES_ServerGroup where "); 源代码网推荐 m.AddSql("ServerGroupID", "ServerGroupID", Common.DataAccess.ORMapping.OperType.Equals, _ServerGroupID); 源代码网推荐 using (IDataReader idr = m.ExecuteReader(conn)) 源代码网推荐 { 源代码网推荐 return Common.Entity.ModelEntityHelp<MServerGroup>.Get_IList(idr)[0]; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 增删改 源代码网推荐 #region 添加服务器群信息 bool Add(int _ServerGroupID, string _ServerGroupName) 源代码网推荐 /// <summary> 源代码网推荐 /// 添加服务器群信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerGroupID">服务器群的ServerGroupID</param> 源代码网推荐 /// <param name="_ServerGroupName">服务器群的名称</param> 源代码网推荐 /// <returns>添加服务器群是否成功</returns> 源代码网推荐 public bool Add(int _ServerGroupID, string _ServerGroupName) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 Common.Utilities.ListDic<string, object> ld = new Common.Utilities.ListDic<string,object>(); 源代码网推荐 ld.Add("ServerGroupID", _ServerGroupID); 源代码网推荐 ld.Add("ServerGroupName", _ServerGroupName); 源代码网推荐 m.Insert(ld, "ES_ServerGroup"); 源代码网推荐 return m.ExecuteNonQuery(conn) > 0; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 修改服务器群信息 bool Modify(int _ServerGroupID, string _ServerGroupName) 源代码网推荐 /// <summary> 源代码网推荐 /// 修改服务器群信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerGroupID">服务器群的ServerGroupID</param> 源代码网推荐 /// <param name="_ServerGroupName">服务器群的名称</param> 源代码网推荐 /// <returns>是否成功</returns> 源代码网推荐 public bool Modify(int _ServerGroupID, string _ServerGroupName) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 Common.Utilities.ListDic<string, object> ld = new Common.Utilities.ListDic<string, object>(); 源代码网推荐 ld.Add("ServerGroupName", _ServerGroupName); 源代码网推荐 m.Update(ld, "ES_ServerGroup"); 源代码网推荐 m.AddSql(" where "); 源代码网推荐 m.AddSql("ServerGroupID", "ServerGroupID", Common.DataAccess.ORMapping.OperType.Equals, _ServerGroupID); 源代码网推荐 return m.ExecuteNonQuery(conn) > 0; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 删除服务器群信息 bool Delete(int _ServerGroupID) 源代码网推荐 /// <summary> 源代码网推荐 /// 删除服务器群信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerGroupID">服务器群的ServerGroupID</param> 源代码网推荐 /// <returns>是否成功</returns> 源代码网推荐 public bool Delete(int _ServerGroupID) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.Delete("ES_ServerGroup"); 源代码网推荐 m.AddSql(" where "); 源代码网推荐 m.AddSql("ServerGroupID", "ServerGroupID", Common.DataAccess.ORMapping.OperType.Equals, _ServerGroupID); 源代码网推荐 return m.ExecuteNonQuery(conn) > 0; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region 得到其它 源代码网推荐 #region 得到某服务器群的所有服务器信息 MServerCollection GetServers(int _ServerGroupID) 源代码网推荐 /// <summary> 源代码网推荐 /// 得到某服务器群的所有服务器信息 源代码网推荐 /// </summary> 源代码网推荐 /// <param name="_ServerGroupID">服务器群ID</param> 源代码网推荐 /// <returns>某服务器群的所有服务器信息</returns> 源代码网推荐 public MServerCollection GetServers(int _ServerGroupID) 源代码网推荐 { 源代码网推荐 DataProvider dp = SqlTools.HelpWWW.DataProviderUse; 源代码网推荐 using (IDbConnection conn = dp.GetConnection()) 源代码网推荐 { 源代码网推荐 Common.DataAccess.ORMapping.IConvert ic = dp.GetIConvert(); 源代码网推荐 Common.DataAccess.ORMapping.Mapping m = ic.GetNewMapping(); 源代码网推荐 m.AddSql("select * from ES_Server where "); 源代码网推荐 m.AddSql("ServerGroupID", "ServerGroupID", Common.DataAccess.ORMapping.OperType.Equals, _ServerGroupID); 源代码网推荐 DataTable dt = m.ExecuteDataTable(conn); 源代码网推荐 MServerCollection list = new MServerCollection(); 源代码网推荐 for (int i = 0; i < dt.Rows.Count; i++) 源代码网推荐 { 源代码网推荐 int serverID = (int)dt.Rows[i]["ServerID"]; 源代码网推荐 string serverName = (string)dt.Rows[i]["ServerName"]; 源代码网推荐 string ip = (string)dt.Rows[i]["IP"]; 源代码网推荐 string domainName = (string)dt.Rows[i]["DomainName"]; 源代码网推荐 string dir = (string)dt.Rows[i]["Dir"]; 源代码网推荐 string url = (string)dt.Rows[i]["Url"]; 源代码网推荐 int serverGroupID = (int)dt.Rows[i]["ServerGroupID"]; 源代码网推荐 object xmlobj = dt.Rows[i]["ServerShops"]; 源代码网推荐 if (xmlobj != null && xmlobj.ToString() != "") 源代码网推荐 { 源代码网推荐 Linkedu.ModelEntity.MServerShopCollection shops = Common.Utilities.SerializationHelper<Linkedu.ModelEntity.MServerShopCollection>.FromXML(xmlobj.ToString()); 源代码网推荐 MServer mserver = new MServer(serverID, serverName, ip, domainName, dir, url, serverGroupID, shops); 源代码网推荐 list.Add(mserver); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 return list; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #endregion 源代码网推荐 源代码网推荐 #region static 源代码网推荐 /// <summary> 源代码网推荐 /// 工厂方法得到DServerGroup对象 源代码网推荐 /// </summary> 源代码网推荐 /// <returns>DServerGroup对象</returns> 源代码网推荐 public static DServerGroup Factory() 源代码网推荐 { 源代码网推荐 return Common.Singleton.Provider<DServerGroup>.Instance; 源代码网推荐 } 源代码网推荐 #endregion 源代码网推荐 } 源代码网推荐 源代码网推荐 http://www.cnblogs.com/laiwen/archive/2006/12/13/591454.html 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
