避免每个页面中重复的代码asp.net c#

zka*_*oca 0 c# asp.net oop inheritance

我开发了一个在头版和控制面板上都具有CRUD功能的网站.我看到我在尝试连接和CRUD时为​​每个页面编写了相同的代码.

我没有足够的时间研究如何优化我的代码,我刚刚写了我需要的东西.我也受了伤.但我没有机会了.

例如:

我有一个数据库,当然我需要一个连接字符串.我需要将记录读入页面(比方说)blogs.aspx.在另一个页面news.aspx我需要再次建立一个新连接,我创建一个新的Sqlconnection实例.

正如我所说,我现在有超过40页,并且有很多重复的数据库连接,datagridview填充代码.

我的问题:

  1. 它是在母版页(Site.Master)中定义Connection,DataTable,DataAdapter,Command实例的好方法吗?或者封装概念会阻止我吗?

  2. 如果我写了一个名为konnekt.cs的类,我将如何将其对象继承到当前页面?换句话说,我如何从当前页面扩展到konnekt.cs?

也许我会得到负面投票,但我认为这种风险值得学习这些概念.我是c#以及其他编程语言的新手.

谢谢你的提示.

Sys*_*own 5

你需要做的是学习"关注点分离"的概念.这基本上意味着你根据它的作用划分你的代码.现在(根据我从您的问题中所理解的),您的所有代码都在一个地方.就像你注意到的那样,这不是一件好事.当然它现在有效,但是一旦你需要进行修改,你就会遇到问题.

在最基本的情况下,您需要分离操作数据库中的数据的代码(通常称为数据访问层)和显示该数据的代码(表示层).当加载页面(表示层)时,它调用数据访问层以从中获取数据(页面不直接调用DB),依此类推.通常,在这两者之间存在第三层,称为业务层,具有业务规则逻辑.

它是在母版页(Site.Master)中定义Connection,DataTable,DataAdapter,Command实例的好方法吗?或者封装概念会阻止我吗?

那不是个好主意.母版页属于演示文稿,所以把任何东西放在那里直接调用数据库是不行的.

如果我写了一个名为konnekt.cs的类,我将如何将其对象继承到当前页面?换句话说,我如何从当前页面扩展到konnekt.cs?

再一次,永远不要直接从您的页面调用数据库.构建连接到数据库另一个类,并让网页调用那个类.