khaoula85
Messages postés15Date d'inscriptionvendredi 28 novembre 2008StatutMembreDernière intervention15 octobre 2009
-
1 janv. 2009 à 18:42
titeoe
Messages postés433Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention 4 décembre 2009
-
4 déc. 2009 à 08:37
Bonsoir,
Je code une application web en C#, mais au moment de la compilation, on me génère l'erreur suivante :
le type ou le nom d'espace de SQLAdapter, SQLCommand, DataGrid... est introuvable J'ai défini pourtant les librairies au début du programme à savoir :
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Resources;
using System.Drawing;
using System.ComponentModel;
using System.Data.Sql;
using System.Data.SqlClient;
Quelqu'un pourrait me dire quelle librairie me manque-t-il ?
Merci et bonne année à tous !
A voir également:
Le nom de type ou d'espace de noms est introuvable
Glpi php directive "session.cookie_httponly" should be set to "on" to prevent client-side script to access cookie values. - Meilleures réponses
Visual studio ne peut pas lancer le débogage car la cible est manquante - Meilleures réponses
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 1 janv. 2009 à 18:59
Salut,
Les directives using et l'ajout de référence sont 2 choses distinctes.
La directive using est en quelquesorte là pour ne pas avoir à spécifier les noms complets des types (exemple : SqlCommand au lieu de System.Data.SqlClient.SqlCommand).
L'ajout de référence permet au compilateur d'avoir accès aux assemblies contenant les types utilisés.
Le meilleur moyen de connaitre l'assembly dans lequel se trouve le type est bien entendu de regarder la documentation de ce type, elle donne entres autres cette information.
khaoula85
Messages postés15Date d'inscriptionvendredi 28 novembre 2008StatutMembreDernière intervention15 octobre 2009 1 janv. 2009 à 19:26
Merci pour l'explication !
D'après mes recherches, j'ai trouvé qu'il fallait ajouter l'assembly : System.Windows.Forms;
Alors que je travaille sur une application web, même quand j'ai inséré cette ligne dans mon code, on m'affiche l'erreur : le type ou le nom d'espace de noms 'Windows' n'existe pas dans l'espace de noms 'System' (une référence d'assembly est-elle manquante ?)
khaoula85
Messages postés15Date d'inscriptionvendredi 28 novembre 2008StatutMembreDernière intervention15 octobre 2009 1 janv. 2009 à 20:25
Oui, je ne les confonds pas :S
J'ai pourtant inséré l'assembly System.Web.UI.WebControls.
Voici le bout de code que j'ai écrit :
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Resources;
using System.Drawing;
using System.ComponentModel;
using System.Data.Sql;
using System.Data.SqlClient;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (this.IsPostBack)
{
// parcourt la liste des contrôles
foreach (string ctl in this.Request.Form)
{
Control c = this.FindControl(ctl);
if (c is System.Web.UI.WebControls.Button)
{
// on ne s'intéresse qu'au Button
Response.Write(c.ID + "
");
}
}
}
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=KHAOULA;" + "Initial Catalog=basePFA;Integrated Security=SSPI");
try
{
SqlCommand com = new SqlCommand("procStock1", con);
com.CommandType = CommandType.StoredProcedure;
com.Parameters.Add("@idEtud", SqlDbType.Int).Value = new int();
com.Parameters.Add("@nomEtud", SqlDbType.VarChar).Value = "";
com.Parameters.Add("@prenomEtud", SqlDbType.VarChar).Value = "";
SqlDataAdapter DA = new SqlDataAdapter(com);
DataSet dt = new DataSet("Etudiants");
DA.Fill(dt, "procStock1"); dataGrid1.SetDataBinding(dt, "procStock1");
}
titeoe
Messages postés433Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention 4 décembre 20091 2 janv. 2009 à 17:42
Dans le code behind , il y a la ligne :
" DA.Fill(dt, "procStock1"); dataGrid1.SetDataBinding(dt, "procStock1"); "
question : ou se trouve le controle dataGrid1 ?
Autre remarque, si tu met en commentaire la ligne " MessageBox.Show(this, ex.Message, "Erreur", MessageBoxButtons.OK); " tu n'aura plus de référence a windows forms car c'est MessageBox qui fait cette référence.
---------------------------------------
R. Seb MCP C# 2.0 - MCTS ASP.Net 2.0
khaoula85
Messages postés15Date d'inscriptionvendredi 28 novembre 2008StatutMembreDernière intervention15 octobre 2009 2 janv. 2009 à 18:04
J'ai commenté ce qu'il y a dans le bloc catch.
Au fait, j'ai écrit ces deux lignes parce qu'on a appris à les écrire à chaque fois qu'on se connecte à une base de données. Mon dataAdapter va remplir un dataSet par sa méthode Set et il doit après "répercuter" mes mises à jour dans la source de données. J'ai fait la liaison (binding) entre le dataSet et un dataGrid.
J'introduis l'ID ingénieur et je récupère ses nom et prénom. Normalement, la procédure stockée que j'ai créée répond normalement à ma requête, il fallait juste l'appeler.
titeoe
Messages postés433Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention 4 décembre 20091 2 janv. 2009 à 21:53
J'ai dis de commenter tes lignes du bloc catch pour résoudre ton probleme de référence au namespace Windows. En effet, c'est messageBox qui provoque cette référence.
Par contre, dans ton bloc catch, il faut bien renvoyer un message d'erreur, comme par exemple un label du style "erreur sur la page".
Ton problème est que tu mélange ASP.Net (Web) avec des contrôles windows (MessageBox).
---------------------------------------
R. Seb MCP C# 2.0 - MCTS ASP.Net 2.0
cs_jawad183
Messages postés2Date d'inscriptionmercredi 11 février 2009StatutMembreDernière intervention 9 novembre 2009 9 nov. 2009 à 09:43
bjr tous le mond si il y a quelqu'un pe m'aidé svp je ve généré un fichier excel sous asp j'ai le code mais il me donne l'erreur suivant 'System.Web.UI.Page' est un type, pas un espace de noms
voici le code et merci
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI.Page;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Xsl;
namespace alliancepages.excelxparticle
{
/// <summary>
/// Summary description for doTransformation.
/// </summary>
public partial class _Default : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Xml xml;
protected void Page_Load(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection(connectionString);
// Put user code to initialize the page here
XsltArgumentList argList=new XsltArgumentList();
argList.AddExtensionObject("http://www.aspalliance.com/joteke",new excelxparticle.Extension());
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);