【问题标题】:How can I use a SqlConnection (ADO.Net) to connect to an ADO recordset?如何使用 SqlConnection (ADO.Net) 连接到 ADO 记录集?
【发布时间】:2010-03-01 06:37:35
【问题描述】:

自两天以来我一直很艰难,无法弄清楚我应该如何处理我的实施。我不确定这是否真的可行。请帮我解决这个问题。

下面是我的场景:

  1. 我有一个 .Net Dll,它有一个方法可以在打开它后返回一个 SqlConnection 对象。下面是函数(类似于我正在使用的 - 这是一个示例函数)

    SqlConnection conn = new SqlConnection();        
    conn.ConnectionString = @"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=myDatabase;Data Source=.\SQLEXPRESS;Trusted_Connection=true";        
    conn.Open();
    
  2. 我正在使用私钥在 GAC 中安装此 .dll。

  3. 然后使用将其导出为 tlb 的 regasm.exe 实用程序注册它。
  4. 最后,我能够从我的 ASP 应用程序访问这个 .net dll,并能够从我正在使用 .dll 类对象访问的方法中获取返回值。 (从方法中访问字符串值肯定没有问题,但是这个方法我试图访问SqlConnection ado.net 对象)

下面是我的示例 ASP 页面,展示了我如何访问和使用连接对象:

<!-- #include file="adovbs.inc" -->
<% 
set objdll = Nothing
set objConn = Nothing

//creating class object from the .net dll
set objdll = Server.CreateObject("gacDemo.clsGacDemo")

//accessing the GetConnection() method using the object. 
//GetConnection() returns the SQLConnection ado.net object
objConn = objdll.GetConnection()

set objRS = Server.CreateObject("ADODB.Recordset")
objRs.Source = "SELECT COUNT(*) AS CityCount FROM city"
objRS.Open "select count(*) as count from city", objConn, 3, 3, 1

Count = objRS.Fields("count").value
response.Write Count

%>

我遇到了这个错误,我正在尝试修复它,

错误类型: ADODB.Recordset (0x800A0BB9) 参数类型错误、超出可接受范围或相互冲突。

我不确定是否可以在 asp 页面中使用 SqlConnection ado.net 对象。

【问题讨论】:

  • @Mitch 更有可能只是一个品味和举止非常差的人。
  • 我认为您不能使用 ADO.Net 连接打开 ADO 记录集。您有什么理由必须将“旧”与“新”混为一谈?换句话说,既然您使用的是标准 ASP,为什么不直接使用 ADO 连接?
  • @David:他显然不喜欢仍在使用 Classic ASP。支持的结束日期是什么时候?我想应该是今年 7 月。
  • 将支持 ASP,直到对包含 ASP 支持的最后一个版本的 Windows Server/IIS 的支持到期。到现在为止,还有Windows Server 2000、Windows Server 2003、Windows Server 2008、Windows Server 2008 R2。

标签: .net ado.net asp-classic


【解决方案1】:

一般来说,您不能在 Ancient ASP 中使用 .NET 代码。唯一可行的方法是将 .NET 代码公开为 COM 对象。在 MSDN 文档中查找“COM Interop”。

【讨论】:

  • 你最好仔细阅读这个问题。他想混合 ADO 和 ADO.NET。 COM Interop 可能有效,但混合 ADO 和 ADO.NET 不应该。
  • @Lex:我知道。我的意思是公开他自己的班级。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-14
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
相关资源
最近更新 更多