Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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
C# 与旧asp getarray()等效的模式_C#_Asp.net_Razor - Fatal编程技术网

C# 与旧asp getarray()等效的模式

C# 与旧asp getarray()等效的模式,c#,asp.net,razor,C#,Asp.net,Razor,只需转到.net,试用c#和razor,而不使用MVC,只需创建网页 我用自己的类(返回数组)在经典ASP中无休止地创建了这种模式 -open connection -execute SQL -get recordset -stick in array (getrows) -destroy recordset -close connection -return array and other stuff such as fieldnames, returned rows check/number

只需转到.net,试用c#和razor,而不使用MVC,只需创建网页

我用自己的类(返回数组)在经典ASP中无休止地创建了这种模式

-open connection
-execute SQL
-get recordset
-stick in array (getrows)
-destroy recordset
-close connection
-return array and other stuff such as fieldnames, returned rows check/number and so on from the class.
然后在代码中,我将循环遍历数组并构建UI和显示

在.net中使用c#和razor进行渲染的等效模式是什么。。?我看到的所有示例似乎都是在一个代码块中完成的,而没有真正使用datareader做任何事情

-open connection
-execute sql
-fill a datareader
-do while and dump to screen
-close/destroy connection/datareader
这种模式意味着我必须使用页面主体中的datareader来呈现所需的HTML,并记住在最后关闭/销毁它,这在我看来效率较低,但我可能只是没有以正确的方式考虑.net(仍处于解释脚本模式)!当one datareader打开时,我也不能将连接用于任何其他用途,我可能再次错误地进行连接

我通常不使用或需要所有的“内置”用户控件,如网格视图等,因为我发现我需要对它们进行定制,这让我无法理解,我很高兴通过一个简单的结构(如数组或集合)进行循环


Rolf

在经典ASP中,当您获得一个
记录集
时,您与数据库有一个打开的连接,就像
数据读取器
一样。您可以在像
dr[“ColumnName”]
这样的时间读取列,或者使用方法以数组的形式获取所有列值

如果需要一次读取所有值,可以使用
DataAdapter
并填充
DataSet

关于处理数据库连接的问题,您可以使用
using
语句,因为它将处理该连接并将其返回到框架连接池


如果您可以使用类似ORM的实体框架,那么当您从业务对象中读取数据时,它将负责正确读取数据库表,因此这可能是一种更高效的方法。

使用实体框架处理与数据库的对话。从
dBContext
获取数据,在其上循环并在屏幕上打印(可能会传输到中间的某个视图模型)。数据检索是用EF完成的,连接是用
using(DbContext)
语句处理的,您只需返回一个包含数据的集合,剩下的就是循环和打印。目前无法使用Entity Framework,因为所有数据库都还在2000上。还有一件事要学,还有一件事要复杂化,当我已经非常复杂的时候=)好的,所以我只是尝试了一下,但是使用using语句,这个块中的任何东西在外面都是不可用的。所以我剩下的就是打开连接,用我的表/记录集填充数据集,然后关闭连接。我读到数据集不需要显式关闭/销毁,是这样吗。。?如果是这样的话,我回到了我习惯的模式,尽管它可能不是“正确”的模式。你说得对,在
using
块中声明的所有变量在它之外都不可用。因此,您必须在外部声明您的
数据集
,并在内部填充它。由于
数据集
无法与数据库保持实时连接,我认为您的模式与经典ASP。