Grove for VS2005 初探

1。下载并安装Grove

http://grove.91link.com  上下载GroveKit 2.1。这个版本是for VS2005、fromwork2.0的。

将下载的压缩包GroveKit2.1.zip解压后,得到GroveKitSetup.msi。按提示进行安装。安装主要是进行解压。在安装路径中运行Install.bat进行对VS2005的注册。注册后,运行VS2005,我们可以在工具栏的“工具”中发现新增了“Grove Tool Kit”。在安装路径中有一个Grove.dll,我们在项目中需要添加此引用。

2。新建实体类

新建数据源

 

在Grove Tool Kit中点击“Add a datasource”,将新建一个数据源。修改该数据源的属性Name及ConnectionStrin。在弹出的对话框中设置好数据源后,将会自动生成连接字符串。

创建实体类

在“Grove Tool Kit”中将会出现该数据源的表及视图。双击Customers表,可以得到该表的实体类。点击“Save in Project”将会把该实体类加入到项目中。

代码:

namespace DataModel
{
 using System;
 using Grove.ORM;
 [DataTable("Customers")]
 public class Customers
 {
  String _CustomerID;
  String _CompanyName;
  String _ContactName;
  String _ContactTitle;
  String _Address;
  String _City;
  String _Region;
  String _PostalCode;
  String _Country;
  String _Phone;
  String _Fax;

  [KeyField("CustomerID")]
  public String CustomerID
  {
   get{return this._CustomerID;}
   set{this._CustomerID=value;}
  }
  [DataField("CompanyName")]
  public String CompanyName
  {
   get{return this._CompanyName;}
   set{this._CompanyName=value;}
  }
  [DataField("ContactName")]
  public String ContactName
  {
   get{return this._ContactName;}
   set{this._ContactName=value;}
  }
  [DataField("ContactTitle")]
  public String ContactTitle
  {
   get{return this._ContactTitle;}
   set{this._ContactTitle=value;}
  }
  [DataField("Address")]
  public String Address
  {
   get{return this._Address;}
   set{this._Address=value;}
  }
  [DataField("City")]
  public String City
  {
   get{return this._City;}
   set{this._City=value;}
  }
  [DataField("Region")]
  public String Region
  {
   get{return this._Region;}
   set{this._Region=value;}
  }
  [DataField("PostalCode")]
  public String PostalCode
  {
   get{return this._PostalCode;}
   set{this._PostalCode=value;}
  }
  [DataField("Country")]
  public String Country
  {
   get{return this._Country;}
   set{this._Country=value;}
  }
  [DataField("Phone")]
  public String Phone
  {
   get{return this._Phone;}
   set{this._Phone=value;}
  }
  [DataField("Fax")]
  public String Fax
  {
   get{return this._Fax;}
   set{this._Fax=value;}
  }
 }
}

2。数据访问层

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;

using Grove;
using Grove.ORM;

using DataModel;

namespace DALFactory {
    public class BaseDAL {
        private static string _connstring = ConfigurationManager.AppSettings["DBConnString"];

        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="obj"></param>
        public static void Insert(object obj) {
            ObjectOperator oo = new ObjectOperator(_connstring);

            oo.BeginTranscation();

            try {

                oo.Insert(obj);

                oo.Commit();

            }

            catch (System.Exception e) {

                oo.Rollback();

                throw e;

            }

            oo.Dispose();

        }

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="obj"></param>
        public static void Delete(object obj) {

            ObjectOperator oo = new ObjectOperator(_connstring);

            oo.BeginTranscation();

            try {

                oo.Remove(obj);

                oo.Commit();

            }

            catch (System.Exception e) {

                oo.Rollback();

                throw e;

            }

            oo.Dispose();

        }

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="obj"></param>
        public static void Update(object obj) {

            ObjectOperator oo = new ObjectOperator(_connstring);

            oo.BeginTranscation();

            try {

                oo.Update(obj);

                oo.Commit();

            }

            catch (System.Exception e) {

                oo.Rollback();

                throw e;

            }

            oo.Dispose();

        }

        /// <summary>
        /// 选择所有
        /// </summary>
        /// <param name="objType"></param>
        /// <returns></returns>
        public static EntityData SelectAll(Type objType) {

            return SelectByFilter(objType, string.Empty);

        }

        /// <summary>
        /// 依筛选器进行选择
        /// </summary>
        /// <param name="objType"></param>
        /// <param name="filter">筛选器</param>
        /// <returns></returns>
        public static EntityData SelectByFilter(Type objType, string filter) {

            ObjectOperator oo = new ObjectOperator(_connstring);

            EntityData data = oo.GetObjectSource(new ObjectQuery(objType,filter));

            oo.Dispose();

            return data;

        }
    }
}

using System;
using System.Collections.Generic;
using System.Text;

using Grove;
using DataModel;

namespace DALFactory {
    public class CustomersDAL{

        public static void Insert(Customers cust) {
            BaseDAL.Insert(cust);
        }
        public static void Delete(Customers cust) {
            BaseDAL.Delete(cust);
        }
        public static void Update(Customers cust) {
            BaseDAL.Update(cust);
        }
        public static EntityData SelectAll() {
            return BaseDAL.SelectAll(typeof(Customers));
        }
        public static EntityData SelectByFilter(string filter) {
            return BaseDAL.SelectByFilter(typeof(Customers), filter);
        }

    }
}

3。表现层

在“web.config”中加入连接字符串

 <appSettings>
  <add key="DBConnString" value="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source=sophia"/>
 </appSettings>

在“Default”页面中加入一个dataview。

            GridView1.DataSource = CustomersDAL.SelectAll().CurrentTable;
            GridView1.DataBind();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值