Как я могу использовать SqlConnection (ADO.Net) для подключения к набору записей ADO? - PullRequest
0 голосов
/ 28 февраля 2010

У меня 2 дня тяжелые времена, и я не могу понять, что мне делать с моей реализацией. Я не уверен, может ли это быть действительно выполнимым. Пожалуйста, помогите мне в этом.

Ниже мой сценарий:

  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. Я устанавливаю эту .dll в GAC, используя закрытый ключ.

  3. Затем зарегистрируйте его с помощью утилиты regasm.exe, которая экспортирует его как tlb.
  4. Наконец, я могу получить доступ к этой .net dll из моего приложения ASP и получить возвращаемое значение от метода, к которому я обращаюсь, используя объект класса .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) Аргументы имеют неправильный тип, находятся за пределами допустимого диапазона или конфликтуют друг с другом.

Я не уверен, что смогу использовать объект SqlConnection ado.net на странице asp.

1 Ответ

1 голос
/ 28 февраля 2010

Как правило, вы не можете использовать .NET-код в Ancient ASP. Единственный практический способ сделать это - представить код .NET как COM-объекты. Посмотрите "COM Interop" в документации MSDN.

...