在这种情况下如何正确创建BLL和GridView



我已经设计了一个数据库,为了更好地证明我的问题,我已经简化了它:

TB: CONSULTANTS
      ID        uniqueidentifier
      NAME      NVARCHAR(30)

TB: EXPENSES
      ID                uniqueidentifier
      AMOUNT            money
      CONSULTANTID      uniqueidentifier

ConsultantID是顾问表的FK,简单吗?

我创建了一个具有两个数据表的数据集,这些数据表是顾问和费用

带有相应的查询,例如顾问ID的获得费用,等等

但是,我想在网格视图中显示的是:

金额&顾问的名字代替顾问ID


当我尝试返回带有(expenseId,金额,顾问名称)的数据表时,它会导致错误,因为模式与基本数据表费用不匹配(expenseId,金额,顾问)。

我该怎么做才能获得(evelseID,金额,顾问名称(非id))


我必须将另一个数据表创建另一个数据表吗?因为ASP.NET网站说这不是创建dal和bll

的优选方法

或我可能会对GridView的边界进行一些更改(如果可能的话,如何将两个不同适配器的输出绑定在一起)。

好吧,您可以在DAL中创建一个方法,该方法从DB获取数据并根据适合您返回DataTable or DataSet

Select c.id as ConsultantId,c.Name as Name,e.amount
from consultant c
inner join experses e
on c.ConsultantId=e.ConsultantId

让您的BAL执行业务逻辑,例如创建顾问班级对象数组和对金额进行验证(例如金额不小于0)。

BAL返回Consultant对象的数组,您可以使用这些数组与数据控件绑定(或者您甚至可以从BAL发送回数据。

我认为linq正在使用第一种方法,该方法从LINQ语法生成SQL脚本并返回您的特定类型对象的收集。

我从asp.net站点示例

找到答案

在创建BLL之前,我们必须弄清每个表适配器中需要什么。

因此,就我而言,我必须使用Composite Select语句。

就是

从费用

从顾问中选择gunsensId,金额,顾问,顾问的顾问名称。

然后,我们可以设法从此DAL中获取所有必需的数据。

最新更新