Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在asp.net(vb.net/c#)中从ms sql数据库填充数据的更好方法_C#_Javascript_Asp.net_Sql_Vb.net - Fatal编程技术网

在asp.net(vb.net/c#)中从ms sql数据库填充数据的更好方法

在asp.net(vb.net/c#)中从ms sql数据库填充数据的更好方法,c#,javascript,asp.net,sql,vb.net,C#,Javascript,Asp.net,Sql,Vb.net,从数据库中填充数据的更好方法是什么(表约500行,最小5列): -使用GridView(我将在标题中获得巨大的viewstate值),或者 -使用带有文本控件的中继器,并带有enableviewstate=“false”(但必须在每次回发后使用tr和onclick属性和隐藏字段,JavaScript)吗 使用大的viewstate还是在每次postback后读取mdf更好 Thx.您还可以在GridView上禁用viewstate,这将使其速度更快。Repeater仍然比GridView快,但是

从数据库中填充数据的更好方法是什么(表约500行,最小5列): -使用
GridView
(我将在标题中获得巨大的
viewstate
值),或者 -使用带有文本控件的中继器,并带有
enableviewstate=“false”
(但必须在每次
回发后使用
tr
onclick
属性和隐藏字段,JavaScript)吗

使用大的
viewstate
还是在每次
postback
后读取mdf更好


Thx.

您还可以在GridView上禁用viewstate,这将使其速度更快。Repeater仍然比GridView快,但是如果代码正确,差异应该不会太大。此外,您可以考虑分页GRIDVIEW(即在页面中显示它,一次说10行)。
从数据库中读取通常比来回发送大的ViewState更快、更高效,但决定走哪条路的不仅仅是速度。有安全和其他事项要考虑。例如,从数据库获取数据要比信任ViewState安全得多,因为ViewState很容易处理。

如果您希望呈现的数据很重,为什么不实现任何客户端实现?像jqGrid还是使用KnockoutJSAPI?然后,您可以构建一个web服务作为后端数据供应商

您可以从jqGrid和KnockoutJS开始


如果使用客户端库实现此功能,则应用程序的性能会更好,因为不需要大量的viewstate来保存值,服务器也不需要每次都呈现标记。

这取决于您的关注点所在

如果您主要关心事件的易处理性,那么启用viewstate的gridview就是您的目标。它为用户可能采取的各种操作提供了很好的挂钩。但是,它确实会带来您提到的viewstate带宽成本。但是,如果你是一个使用相对良好的连接的观众,并且你需要快速启动和运行,这可能是一个很好的选择


如果带宽是您主要关心的问题,那么repeater/literal方法肯定会为您节省一些,但您必须自己编写所有事件逻辑。为每个回发运行相同的查询确实是多余的,但实际上可能不会占用那么多性能,因为db的缓存机制。但是,在每次回发之后,您仍将发送回完整的表。在我看来,最好的带宽节约方案是在加载时只发送一次完整的表,然后通过web服务调用处理所有表事件(您可以使用ASP.NET的web API框架)。这样,只有实际的更改才会通过网络发送。

问题是我不能使用分页。。。必须列出所有这些(这是必需的):(因此,如果我对每次回发后的填充非常了解,您建议我使用Repeater和Literal。与GridView控件相比,这对带宽有何影响?(顺便说一句,我使用gzip压缩页面)。如果在GridView上禁用viewstate,并且您正在使用gzip,那么带宽的差异可以忽略不计,因此,请使用更能满足您需要的。如果您仍然关心可忽略不计的差异,请使用转发器。转发器除了您在模板中编写的代码外,几乎不呈现HTML,因此您可以完全控制,虽然GridView呈现了一些额外的HTML,但是gzip会使这些额外的HTML对带宽的影响非常小。你能给我一些带有示例的链接吗?Thx。学习Web API的好地方是,这里有很多很好的示例。要从页面中使用Web服务,您可以使用jQuery的Ajax功能,其中有一些很好的示例,第二个示例是Web API服务最容易使用的示例。