繁体   English   中英

C#/ SQL Server 2005我应该对报表和数据网格使用OOP吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM