通过gridview与数据库接口的良好方法

本文关键字:方法 接口 gridview 数据库 通过 | 更新日期: 2023-09-27 18:01:43

我所做的是为每个表创建存储过程,用于选择/插入/更新,然后我(如果选择)用所有行填充数据表,并传递给与gridview绑定的objectdatasource。这是好技术还是坏技术?什么是好的技术(使用BO, BL, DAL)通过网格视图更新/删除/插入数据库中的记录?

谢谢!

通过gridview与数据库接口的良好方法

我做了一个数据模型层,它封装了我想要公开给主应用程序的所有数据。然后,我有一个业务逻辑层,它将模型层连接到数据访问层。数据访问层是所有神奇的事情发生的地方。在这里,我使用系统。Data、System.Data.SqlClient或MySQL.Data.MySQLClient(或任何你使用的——它有一个。net连接器)名称空间来实际调用存储过程并将数据放入数据模型中,反之亦然。

这是我解释过的一个例子,但我做我的有点不同。我希望我的数据模型能够公开访问方法,这有助于数据的组织。此外,我使用System.Data.DataTable将数据绑定到gridview。它工作得很好,甚至允许您存储主键和外键信息。它将管理传递架构信息给gridview。

public class ImageListModel
{
    private ImageListBLL objImageListBLL; 
    public ImageListModel(string connectionString, string databaseEngine, int groupID)
    {
        if(databaseEngine.ToLower() == "mysql")
            objImageListBLL = new ImageListBLL(DatabaseEngine.MySQL, connectionString);
        GroupID = groupID;
    } 
    public int GroupID
    {
        get;
        set;
    } 
    public DataTable GetImageList()
    {
        return objImageListBLL.GetImageList(GroupID);
    } 
    public bool InsertImage(ImageModel objImage)
    {
        objImage.GroupID = GroupID;
        return objImage.Insert();
    } 
    public bool DeleteImage(ImageModel objImage)
    {
        return objImage.Delete();
    } 
    public bool EditImage(ImageModel objImage)
    {
        return objImage.Edit();
    }
} 
public class ImageModel
{
    private ImageBLL objImageBLL;
    public ImageModel(string connectionString, string databaseEngine)
    {
        if (databaseEngine.ToLower() == "mysql")
            objImageBLL = new ImageBLL(DatabaseEngine.MySQL, connectionString);
    } 
    public long ID
    {
        get;
        set;
    }

    public string TitleTop
    {
        get;
        set;
    } 
    public string TitleBottom
    {
        get;
        set;
    }

    public string ImageUrl
    {
        get;
        set;
    } 
    public string ExtraMarkup
    {
        get;
        set;
    } 
    public string DescriptionUrl
    {
        get;
        set;
    } 
    public int Order
    {
        get;
        set;
    }

    public int UserID
    {
        get;
        set;
    } 
    public int GroupID
    {
        get;
        set;
    } 
    public bool Insert()
    {
        return objImageBLL.InsertImage(this);
    } 
    public bool Edit()
    {
        return objImageBLL.EditImage(this);
    } 
    public bool Delete()
    {
        return objImageBLL.DeleteImage(this);
    } 
    public void ChangePosition()
    {
        objImageBLL.ChangeImagePosition(this);
    }
}

如您所见,DAL是完全隐藏的。BLL管理调用适当的数据访问层方法。它对具有适当的数据状态操作、检索和保存方法的一般图像列表进行建模。在我看来,这就是建模应该意味着什么。

我假设你知道如何使用db连接器的螺母和螺栓。如果你不知道,请告诉我,我会发布更多的代码。

我的模型是这样工作的:

               DataModel -- Exposed to main application
                 |
                 |
                '/
           Business Logic Layer
                 |
              pass DataModel
                 |
                '/
            Data Access Layer

这种方法是使用gridview实现基本CRUD函数的好方法(这可能是您所需要的全部!)更奇特的是,您可以考虑使用ORM(对象-关系映射)工具来创建您可以随意使用的业务对象。

使用ADO。. NET实体数据模型请,它很简单!

参考:http://msdn.microsoft.com/en-us/library/aa697427 (v = vs.80) . aspx

相关文章: