[英]C# / SQL Server 2005 Should I use OOP for reports and datagrids?
我的Web应用程序分为不同的层,其中之一是业务层,其工作方式如下:
PersonBusiness pb = new PersonBusiness();
Person p = pb.GetPerson(10);
然后,每当查看记录时,我都会将人员对象加载到ASP.NET控件中,然后为了进行保存,请执行以下操作:
PersonBusiness pb = new PersonBusiness();
Person p = new Person();
p.Name = "Alex";
pb.SavePerson(p);
如果我需要在应用程序中显示一个报表,而该报表实际上是从数据库中调用视图的结果,而该视图实际上是业务层中不同对象的混合,该怎么办? 您是否建议仅绕过业务层并加载来自视图的数据集? 在这里使用OOP是否有意义? 如果为true,那么我将必须创建一个自定义对象,该对象仅用于该单个报告,而不能用于其他任何报告。
这更多是一个通用问题,并不严格适用于C#和SQL,但基本上适用于其中的任何业务应用程序...
我希望我的问题有道理,
谢谢您的时间,并度过愉快的一天
这来自企业级应用程序。 我们运行查询来搜索数据库中的多个表以返回数据集。 然后,我们将该数据集加载到数据网格中。 它运作良好,易于使用。 我们在其他任何地方都使用OOP,但这在试图限制您必须编写的代码量和易用性时很有意义。
// Call in program
m_Info = m_InfoDAO.GetInfo();
//Database Call
public DataSet GetInfo()
{
try
{
if (this.cnn == null)
this.ConnectAndEnable(ref cnn);
string sql = @" select '0' as select_id, folder_name, folder_name as hidden_folder, (to_char(mod_date,'MM/DD/YYYY hh12:mi AM') || ' ' || mod_user) as mod_date
from index_info , index_patient
where deleted_date is null
order by folder_name asc";
OracleCommand cmd = new OracleCommand(sql, cnn);
OracleDataAdapter da = new OracleDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
cmd.Parameters.Clear();
return ds;
}
catch (Exception ex)
{
Trace.WriteLine("Exception in InfoDAO.GetInfo: " + ex.Message);
throw ex;
}
}
//Initialize Grid
gridInfo.DataSource = m_Info;
gridInfo.ActiveRow = null;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.