2010-02-28 7 views
0

J'ai du mal depuis 2 jours et je n'arrive pas à comprendre ce que je devrais faire avec ma mise en œuvre. Je ne suis pas sûr que cela puisse vraiment fonctionner. Aidez-moi s'il vous plaît à ce sujet.Comment puis-je utiliser une SqlConnection (ADO.Net) pour se connecter à un jeu d'enregistrements ADO?

est mon scénario ci-dessous:

  1. J'ai un .Net dll qui a une méthode qui retourne un objet SqlConnection après l'avoir ouvert. Ci-dessous la fonction (similaire à laquelle je suis en utilisant - c'est un exemple de fonction)

    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. J'installe ce fichier .dll dans le GAC à l'aide d'une clé privée.

  3. Puis en l'enregistrant en utilisant l'utilitaire regasm.exe qui l'exporte en tant que tlb.
  4. Enfin, je suis en mesure d'accéder à cette DLL .net à partir de mon application ASP et en mesure d'obtenir la valeur de retour de la méthode que j'accède en utilisant l'objet de classe .dll. (Il n'y a certainement pas de problème pour accéder à la valeur de chaîne à partir d'une méthode, mais cette méthode que je tente d'accéder à l'objet ado.net SqlConnection)

Ci-dessous mon exemple ASP page pour montrer comment je suis accès et l'utilisation l'objet de connexion:

<!-- #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 

%> 

Je reçois cette mauvaise erreur que je suis en train de le fixer,

Type d'erreur: ADODB.Recordset (0x800A0BB9) les arguments sont du mauvais type, sont hors de gamme acceptable, ou sont en conflit avec un un nother. Je ne suis pas sûr si je peux utiliser l'objet SqlConnection ado.net dans la page asp.

+0

"flopdix" - est-ce un troll? –

+0

@Mitch plus probablement juste quelqu'un avec un goût et des manières incroyablement pauvres. –

+1

Je ne pense pas que vous pouvez ouvrir un jeu d'enregistrements ADO en utilisant une connexion ADO.Net. Y a-t-il une raison pour que vous ayez à mélanger le «vieux» avec le «nouveau»? En d'autres termes, pourquoi n'utilisez-vous pas simplement une connexion ADO puisque vous utilisez l'ASP standard? –

Répondre

1

En général, vous ne pouvez pas utiliser le code .NET dans ASP ancien. La seule façon pratique de le faire est d'exposer le code .NET en tant qu'objets COM. Recherchez "COM Interop" dans la documentation MSDN.

+0

Vous feriez mieux de lire attentivement la question. Il veut mélanger ADO et ADO.NET. COM Interop peut fonctionner, mais le mélange ADO et ADO.NET ne devrait pas. –

+0

@Lex: je sais. Je voulais dire exposer sa propre classe. –

Questions connexes