【问题标题】:Benefits of DataBinding over Manually Querying / Adding to Control数据绑定相对于手动查询/添加到控件的好处
【发布时间】:2010-09-20 01:34:01
【问题描述】:
我已经成为 C# 程序员大约 2 年了,专业化的时间超过 1 年。我在一家公司担任开发人员,开发在 .NET 2 之前就开始的应用程序。我的问题是:
直接使用来自 sql 查询的数据绑定到控件而不是查询和手动将项目添加到控件有什么好处?这种方法通常被认为更干净,在部署方面更简单吗?是否还会存在手动添加会对数据的显示/值进行更精细控制的情况?
我之所以问,是因为我被分配了一些错误,这些错误处理一些根据查询结果填充自己的控件,并且希望清理不必要的逻辑并将其推送到库而不是我来处理。
注意:我们使用的是 .NET 2.0
【问题讨论】:
标签:
c#
.net
sql-server
model-view-controller
data-binding
【解决方案1】:
我个人认为使用
control.DataSource = YourSource;
control.DataBind();
流程更简单,无需进行迭代,整体降低LOC。
如果使用 DropDownLists 和其他控件,您很可能也会设置 DataValueField 和 DataTextField 属性。
【解决方案2】:
数据绑定更容易设置,总体上更不容易出错,显着降低 LOC(如 Mitchel Sellers 所说),并且除了一些小故障之外,工作相当可靠。
根据我的经验,如果您需要为数据绑定控件指定确切的更新顺序或时间,您实际上只需要完全手动控制。
【解决方案3】:
如果您有复杂的输入场景,手动绑定会很有用。使用数据绑定输入控件,您会发现只有当数据到达数据库并引发异常(日期/时间格式错误、整数超出正确范围等)时,您才知道有错误数据。
您显然可以通过数据控件上的各种验证/预提交事件来处理此问题,但手动验证您的输入并在您知道输入正确时将其发布会更容易(并且更明显可读)。
这是我能想到的唯一原因,它只适用于输入。如果您处于只读场景中,那么数据绑定是轻而易举的事情。
【解决方案5】:
信息连接的设置要简单得多,整体问题主题更少,大大降低了 LOC,而且,除了一些小错误之外,将很容易工作。根据我的经验,如果您需要为某些句柄的详细信息指定实际的更新顺序或时间,您实际上只需要完全的指南控制。