使用数据库的依赖属性

时间:2011-12-16 09:52:37

标签: c# wpf

在WPF中我们使用依赖属性,但我想知道是否可以在Web应用程序中使用它们。
例如。假设我有一个文本框的值“jack”。该名称来自数据库,因此当数据库表字段更新并将名称更改为“john”时,如何影响文本框的值,所以它也会更改为“john”?

4 个答案:

答案 0 :(得分:1)

在Web应用程序中,事情与WPF应用程序有所不同。

在WebApp中,请求进入,服务器处理它,然后将结果返回给客户端浏览器。如果服务器上发生了某些变化,服务器无法让客户端知道这一点,直到有新的请求进入并且服务器可以返回新的响应。

ASP.NET具有DataBinding和DataSources的概念。例如,您可以配置SqlDataSource以执行查询并将结果绑定到Grid或List控件。这将在用户加载页面时执行。

当服务器上发生更改时,自动刷新数据会要求客户端不断轮询服务器以进行更改(使用AJAX的异步方式)以查看是否有更改,然后在浏览器中更新HTML。这就是您在Twitter或LinkedIn等应用中所看到的情况,但它与您在WFP应用中习惯的完全不同。

答案 1 :(得分:1)

好主意 - 但你错过了一些主要问题。

依赖属性本质上是一个内存对象,各种东西都订阅了更改。

要对数据库执行相同操作,您需要一种方法来传达该更改(对应用程序)。由于这些都是在进程外,它必须是一些跨进程甚至跨服务器/网络调用。所有这些都需要由您手动定义和构建。

答案 2 :(得分:1)

在网络上没有像wpf中的数据绑定那样的东西。 DB不实现数据更改的接口。 您可以做的是使用DB存储过程(已编译)并将触发器上的数据更改传递给Web实例。从那以后,可以通过Ajax更新视图/网页。

这将是“推”方法,这当然是更好的解决方案,但更难实施。

你也可以按照定时间隔进行“数据池化”,并相应地更新页面,这很容易实现但是资源非常糟糕。

祝你好运, P上。

答案 3 :(得分:0)

简短回答是的,你可以,数据的来源无关紧要。 编写一个实现INotifyPropertyChanged的类,它基本上称为ViewModel。此类将包装来自数据库的数据,并在值更改时通知视图。