2010-09-07 163 views
1

时出现的一些问题,有一个objCMD变量设置为Server.CreateObject("ADODB.Command")的值。我认为objCMD应该变成一个SqlCommand .NET对象,但我需要首先确认。我仍然不确定Server.CreateObject("ADODB.Command")正在做什么。我在经典asp网站上从经典asp转换为.NET

有人可以向我解释Server.CreateObject()吗?

回答

3

Server.CreateObject从命名标识符创建一个COM对象,用于在asp中使用。

传入的字符串将标识需要创建供asp使用的COM对象(例如Msxml.DOMDocument用于XML解析器,或者ADODB数据库命令对象,如您的示例中所示)。

正如您所猜测的,.NET中的ADODB.Command的等效物是SqlCommand对象。

1

Server.CreateObject本质上是创建一个指定类型的服务器对象。在你的情况下,它是一个ADO命令对象。

随着.Net,这已被替换为ADO.Net框架,它使用起来更简单。您将创建一个SqlCommand对象,就像您所指出的一样,以及一个DataAdapter或DataReader对象以及SqlCommand对象。

+0

感谢您的回答。就在我的“ADODB.Command”声明下面,我有一个“Server.CreateObject(”ADODB.Recordset“)”对象。这正是我需要用一个DataAdapter或DataReader对象来替换,正如你所说的那样? – user408869 2010-09-07 20:03:25

+0

在Recordset的情况下,如果要使用TableAdapter检索/操作数据,则可能需要使用DataTable;如果使用DataReader,则可能使用非数据表。 DataReader提供记录集结果的“一次性流”,一次记录一条记录,因此您可以根据需要选择如何处理数据。 – 2010-09-07 21:02:56