Probleme avec Global.asax et SqlConnection

Signaler
Messages postés
1
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
30 octobre 2004
-
Messages postés
22
Date d'inscription
samedi 27 novembre 2004
Statut
Membre
Dernière intervention
24 janvier 2005
-
Bonjour tout le monde,

Je suis debutant en ASP.NET VB et j'ai un petit probleme avec ma page Global.asax

j essay de faire appel a une base de donnees pour peupler une liste asp:DropDownList

voici le code du fichier Global.asax :

<%@Import Namespace="Systeme.Data.SqlClient"%>
<script language="VB" runat="server">

Sub Session_Start(Sender As Object, E As EventArgs)

Dim myConnection As SqlConnection
myConnection = new SqlConnection()
myConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=SDS.mdb"
myConnection.Open()
Session("myConnection") = myConnection

End Sub

Sub Session_End(Sender As Object, E As EventArgs)

Dim myConnection As SqlConnection
myConnection = CType(Session("myConnection"),SqlConnection)
myConnection.Close()

End Sub

</script>

et voici celui de stock.aspx:

<%@ Page Language="VB" Debug="true" %>
<%@ Register TagPrefix="SDS" TagName="NavBar" Src="NavBar.ascx" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">

Sub ChargerListeFamilles()

Dim myConnection As SqlConnection
Dim myCommand As SqlCommand
Dim myReader As SqlReader
Dim SQL As String

myConnection = CType(Session("myConnection"),SqlConnection)

SQL = "SELECT * FROM FamilleProduit"
myCommand = new SqlCommand(SQL,myConnection)

myReader = myCommand.ExecuteReader()

ListeFamilles.DataSource = myReader
ListeFamilles.DataValueField = "ID_FamilleProduit"
ListeFamilles.DataTextField = "NomFamille"

ListeFamilles.DataBind()

myReader.Close()

End Sub

Sub Page_Load(Sender As Object, e As EventArgs)

ChargerListeFamilles()

End Sub

</script>
<html>
<head>
<title>Suivi des stocks</title>
<link href="SDS.css" type="text/css" rel="stylesheet"/>
</head>


<SDS:NavBar id="MyNavBar" SelectedIndex="1" runat="server"></SDS:NavBar>

<form runat="server">
Bienvenue dans le module de suivi des stocks

Famille,



</form>

</html>

et voici l erreur :

Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: BC30002: Type 'SQLConnection' is not defined.

Source Error:



Line 4: Sub Session_Start(Sender As Object, E As EventArgs)
Line 5:
Line 6: Dim myConnection As New SQLConnection()
Line 7: myConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=SDS.mdb"
Line 8: myConnection.Open()


Source File: global.asax Line: 6

merci

Huummm....encore un bug

2 réponses

Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
6
Il ne faut jamais faire ca en ASP.NET.

La connexion au server SQL doit être la plus brève possible. Elle encadre bien souvent la requette elle même et est réouverte en cas de besoin.
Les problème de lenteur éventuelle liée à l'ouverture de la connexion en ASP3 n'existent plus .NET, le driver utilisé est natif SQL Server. De ce fait le mode conseillé est le suivant :

- On ouvre la connexion
- On exécute la requette
- On ferme la connexion immédiattement

Ceci afin de laisser la place à d'autres utilisateurs.

Donc ceci pour dire ne jamais mettre d'ouverture de connexion dans le global.asax.

Romelard Fabrice (Alias F___)
Messages postés
22
Date d'inscription
samedi 27 novembre 2004
Statut
Membre
Dernière intervention
24 janvier 2005

Normal

tu utilise lle mauvais namespaces !

Ce n'est pas system.data.sqlclient qu'il faut utiliser, mais system.data.oledb.

system.data.sqlclient pour sql server
system.data.oledb pour ACcess

François Michael Dain

Site du labo-dotnet

Forum du labo-dotnet