Dll vb.net et référencement en asp.net

wahref Messages postés 15 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 7 mai 2005 - 13 avril 2005 à 11:36
wahref Messages postés 15 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 7 mai 2005 - 15 avril 2005 à 17:44
Bonjour à tous!
Je developpe un site web sur ASP.Net, et pour se connecter à une base de données access j'utilise un pilote ODBC et puis j'ai créer une dll sur vb.net et j'ai la référencé en ASP.NET .
Voici le code d'ajout que j'ai ecrit dans la dll
Public Class Banque
Public Sub Ajout(ByVal code As Integer, ByVal pays As String, ByVal cpaysAs String, ByVal raissoc As String, ByVal abrevAs String,)
Dim conn =New ADODB.Connection()
Conn.Open("test") (Sachant que test est le nomde l'ODBC)
Dim rs As New ADODB.Recordset
Dim SQL = "Insert into Banques Values (' "& code &" ', ' "& pays&" ', ' "& cpays&" ', ' "&raissoc &" ', ' "& abrev &" ',)"
rs = conn.Execute(SQL)
Conn.Close()
End Sub
End Class
Aprés avoir referencé la dll dans asp.net j'ai ecrit le code suivant dans le bouton d'ajout de la page asp
Dim con As ConnexionDB.Banque "(Avec ConnexionDB est le nom de la bibliothèque de classe)"
Con=New ConnexionDB.Banque()
Con.Ajout(txtcdBanque.Text , txtcdpays.Text , txtpays.Text , txtraissoc.Text , txtabrev.Text)
Mais le probleme est qu'on exécution j'ai une erreur que je suis pas arrivée à résoudre.
J'ai vraiment besoin d'une solution, j'ai tous essayé mais ??!!
Il s'agit de mon projet de fin d'etude la soutenance est bientot, au secours!

9 réponses

cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
13 avril 2005 à 14:41
Est-ce que tu utilises 'namespace', 'imports' , 'assembly' quelque part dans ton code ?

Ta .dll doit être dans le répertoire bin de ta web application.

yopyop
0
wahref Messages postés 15 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 7 mai 2005
14 avril 2005 à 10:25
D'abord Merci beaucoup! mais, oui j'ai ecrit dans ASP.NET Imports le nom de la dll avec le nom de la classe
Et J'ai constaté qu'elles sont reconnues dans Asp parceque leurs noms m'apparaissent lorsque j'ecrit le code.
Dernièrement, il me semble que le problème réside dans la requete SQL car le message d'erreur est le suivant "you must use an ubdateable query".
Maintenant qu'est ce que je peux faire?
Merci!
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
14 avril 2005 à 13:50
Essaies:

Public Sub Ajout(ByVal code As Integer, ByVal pays As String, ByVal cpaysAs String, ByVal raissoc As String, ByVal abrevAs String,)
Dim conn =New ADODB.Connection()
Conn.Open("test") (Sachant que test est le nomde l'ODBC)
'Dim rs As New ADODB.Recordset

Dim SQL = "Insert into Banques Values (' "& code &" ', ' "& pays&" ', ' "& cpays&" ', ' "&raissoc &" ', ' "& abrev &" ',)"
'rs = conn.Execute(SQL)
conn.Execute(SQL)
Conn.Close()
End Sub
End Class

Mais c'est quoi ta base de données ?

Je savais pas que ADODB.Connection() existait en .NET ???

yopyop
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
14 avril 2005 à 13:53
En .NET le code devrait plutôt être du genre (pour une connection à SQL server)



Public
Function ExecuteSingleSQL(
ByVal sSQL
As
String)
As
Integer



Dim myConnection
As
New SqlConnection



Dim myCommand
As
New SqlCommand



Dim iAffected
As
Integer



Try


myConnection = GetOpenedConnection()


myCommand.Connection = myConnection


myCommand.CommandType = CommandType.Text


myCommand.CommandText = sSQL


iAffected = myCommand.ExecuteNonQuery()



Return iAffected



Catch ex
As Exception


Tools.SendErrorMail(ex, sSQL)



Throw



Finally


myConnection.Close()



End
Try



End
Function

yopyop
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wahref Messages postés 15 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 7 mai 2005
14 avril 2005 à 15:34
Merci
J'ai essayé avec ce que vous avez proposé mais j'ai le meme message d'erreur.
Ma base est une base de données ACCESS (2003).
On peut faire ADODB connection sur le .NET, je le fait avec un DSN ODBC.
je ne trouve pas une solution!
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
14 avril 2005 à 16:31
ok,

tu as un problème de sécurité (je crois).
est-ce que tu utilises NTFS ?
Si oui, il faut que tu donnes les droits de lecture/écriture au user
IUSR_Computername sur ton fichier .mbd.

yopyop
0
wahref Messages postés 15 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 7 mai 2005
15 avril 2005 à 14:32
Oui j'ai tous les droits sur ma base, Maintenant j'ai un autre message d'erreur"The connection cannot be used to perform this operation. it is either closed or invalid in this context"
Qu'est ce que je peux faire? Merci beaucoup!
0
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
15 avril 2005 à 15:32
vérifie tes paramètres de connection à ta base.


que se soit l'objet connection ou ta chaîne de connection, apparemment tu n'as pas le droit des faire des update/insert sur ta base de données.

peut-être tu passes par un user (au niveau sql... donc access) qui n'a pas les droits d'update/insert.

yopyop
0
wahref Messages postés 15 Date d'inscription mercredi 30 mars 2005 Statut Membre Dernière intervention 7 mai 2005
15 avril 2005 à 17:44
Merci yopyop! Mais mon encadreur m'a dit que les memes instructions s'execute sans aucune erreur avec une base Oracle.
Alors il me propose d'utiliser oracle.
je vais essayer et je vous dit si ça marche ou pas.
0
Rejoignez-nous