65.9K
CodeProject 正在变化。 阅读更多。
Home

BoneBoxes .Net 数据访问工具和数据层生成器

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.18/5 (8投票s)

2002年11月16日

2分钟阅读

viewsIcon

57720

downloadIcon

837

BoneBoxes 是一个数据访问库,它为您提供 SQL 语句和基于数据集属性的数据验证。

引言

BoneBoxes 是一个数据访问库。 有两个连接对象可用于 SQL 和 OleDb 实现。 SqlConnecter 和 OleDbConnecter 都是 IBoneConneter 对象。 它们都用连接字符串实例化。 这些对象为您处理数据库连接。

BoneBoxes 命名空间还包括连接字符串结构。 OraDbString 没有完全实现。 但是 MsSqlDbStringMySqlDbStringOleDbString 已经实现。

这些都只是连接字符串、数据库连接和简单交互的便利类。 但是,BoneBox 类是由 Generator 命名空间中的 BoneBoxer 类生成的类的基类。

生成的 BoneBoxes 只需要通过实现抽象的 DataTable BuildStructure() 方法来指定其数据结构。 所有其他功能都在 BoneBox 类中。 每个生成的类代表数据库中的一个表。 从这些类创建的每个对象代表该表数据的一行。 这些不应被视为业务对象。 它们仅处理数据库交互。 这些类构成一个数据访问层。 您的应用程序应该实现自己的业务对象层以及两者之间的转换层。

生成的 BoneBoxes 根据其属性中设置的数据集为您提供 SQL 语句和数据验证。 但是,您不需要使用此功能,因为 BoneBoxes 包括用于写入和删除它们表示的数据的方法。 它们包括两个构造函数。 一个是默认的,用于添加新数据。 另一个接受 int 主键值和一个 IBoneConnecter 连接对象,用于从数据库数据加载 BoneBox。

BoneBoxes 生成器还可以生成 BoneBoxes 的精简版本。 此精简版本不进行数据访问。 精简版本仅生成基于表字段的属性。 然后可以修改这些属性,为业务层类创建基础。

为了方便起见,生成器还可以生成类型化的集合以及您的 BoneBoxes。

BoneBoxes 及其生成器只是我使用的便利工具。 因此,目前状况下的 BoneBoxes 是完全免费的。 我只要求您在心情好的时候向我提供一些反馈。 当然,我对您使用 BoneBoxes 可能遇到的任何问题不承担任何责任。 如果您在 BoneBoxes 之上实现关键任务应用程序并且出现问题,请不要对我提起数百万美元的诉讼。 同样,如果您的孩子因破碎的 BoneBoxes 的小碎片而窒息,我也概不负责。

使用代码

关于如何使用文章或代码的简要说明。类名、方法和属性,任何技巧或窍门。

using System;
using System.Data;
using System.Data.SqlClient;
using BoneSoft.MsgBrd.Sys;
using BoneSoft.BoneBoxes;

namespace BoneBoxes.Example {
    public class DataExample {
        private MsSqlDbstring dbs;
        private SqlConnecter conn;

        #region Example of IBoneConnecter and IBoneDbstring objects
        public DataExample() {
            dbs = new MsSqlDbstring("localhost", "Database", "uid", "pwd");
            conn = new SqlConnecter(dbs);
        }

        private DateTime GetLastPost(string sql) {
            IDataReader rs = conn.Select(sql);
            DateTime d = new DateTime(1901, 1, 1);
            if (rs.Read()) {
                d = rs.GetDateTime(0);
            }
            rs.Close();
            conn.Close();
            return d;
        }

        public SqlConnecter GetCopy(int id) {
            return (SqlConnecter) conn.MemberwiseClone();
        }
        #endregion

        // Example of using a generated BoneBox class called BbxCategory
        // from the BbxCategory database table
        public bool CreateCategory(Category cat) {
            BbxCategory BbxCat = new BbxCategory();
            BbxCat.Id = 1;
            BbxCat.Data = new DateTime();
            BbxCat.Name = "Cat1";
            return BbxCat.WriteBoneBox(conn) != 0 ? true : false;
        }
    }
}
/*  IBoneConnecter methods
    int Execute(string sql)
    IDataReader Select(string sql)
    DataSet SelectDataSet(string sql)
    DataTable SelectDataTable(string sql, string tbl)
    DataSet Schema()
    DataTable TableSchema(string table)
    Close()
*/

关注点

IBoneConnecter 对象基本上是简单的连接管理器,可简化连接和查询。 IBoneDbstring 对象是简化连接字符串的便利结构。 生成的类可以直接使用,与您的数据库进行交互。 只需设置它们的属性并告诉它们写入即可。

© . All rights reserved.