У меня 2 дня тяжелые времена, и я не могу понять, что мне делать с моей реализацией. Я не уверен, может ли это быть действительно выполнимым. Пожалуйста, помогите мне в этом.
Ниже мой сценарий:
У меня есть .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();
Я устанавливаю эту .dll в GAC, используя закрытый ключ.
- Затем зарегистрируйте его с помощью утилиты regasm.exe, которая экспортирует его как tlb.
- Наконец, я могу получить доступ к этой .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.