Webpart pour sharepoint codée en C# [Résolu]

Messages postés
301
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
9 février 2010
- - Dernière réponse : cs_rodcobalt22
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016
- 8 août 2007 à 09:59
bonjour tout le monde
je suis entrain de codé une webpart en C# pour un site sharepoint et qui est censée contenir un grid affichant une table d'une base de données, et quelques boutons en bas (j'ai pas encore codé ces boutons), et là j'ai des problèmes dans l'envoie de la requete à mon serveur (j'ai installé en local SQL Server 2003 SP3)

le compilateur ne reconnait pas les variables de type DataSet et SqlConnection ....sachant que je débute en C#

je crois que l'utilisation d'un grid view est meilleure, avez vous un exemple de webpart codée en  C# et qui contient un gridview, je vous en serai reconnaissant! j'ai tellement besoin d'un model pareil!!

je vous remercie infiniment

///////////////////
using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.WebPartPages;

namespace WebPartLibrary1
{
 /// <summary>
 /// Description for WebPart1.
 /// </summary>
 [DefaultProperty(""),
 ToolboxData("<{0}:container runat=server></{0}:container>"),
 XmlRoot(Namespace="essaie001")]
 public class container : Microsoft.SharePoint.WebPartPages.WebPart
 {
  private string strSQLserver = "";
  private string strDatabase = "";

  //SQL Server Name
  [Browsable(true), Category("Miscellaneous"),
  DefaultValue(""),
  WebPartStorage(Storage.Shared),
  FriendlyName("SQLServer"),
  Description("The server where pubs is installed.")]
  public string SERVER
     {
    get
    {
      return strSQLserver;
       }
       set
          {
         strSQLserver = value;
          }
        }

  //Database Name
        [Browsable(true), Category("Miscellaneous"),
  DefaultValue(""),
  WebPartStorage(Storage.Shared),
  FriendlyName("Database"),
  Description("The database where the Enterprise Data is located.")]
  public string DataBase
  {
   get
   {
    return strDatabase;
   }
   set
   {
    strDatabase = value;
   }
  }

  protected DataGrid grdNames;
  protected Label lblMessage;
  //protected

  protected override void CreateChildControls()
        {
  //Grid to display results
  grdNames = new DataGrid();

   grdNames.Width = Unit.Percentage(100);
   grdNames.HeaderStyle.Font.Name = "arial";
   grdNames.HeaderStyle.Font.Bold = true;
   grdNames.HeaderStyle.ForeColor = System.Drawing.Color.Wheat;
   grdNames.HeaderStyle.BackColor = System.Drawing.Color.DarkBlue;
   grdNames.AlternatingItemStyle.BackColor = System.Drawing.Color.LightCyan;
   grdNames.AutoGenerateColumns=false;
   grdNames.SelectedItemStyle.BackColor=System.Drawing.Color.Blue;
 
  Controls.Add(grdNames);

  //Label for error messages
  lblMessage = new Label();
 
   lblMessage.Width = Unit.Percentage(100);
   lblMessage.Font.Name = "arial";
   lblMessage.Text = "";
 
  Controls.Add(lblMessage);
        }

  protected override void RenderWebPart(HtmlTextWriter output)
  {
   DataSet objDataSet;
            //Set up connection string from custom properties
            string strConnection;
            strConnection = "Data Source=" + SERVER;
            strConnection += ";Initial Catalog=" + DataBase;
            strConnection += ";Integrated Security=True";

            //Query pubs database
            string strSQL = "select * from authors";
            //Try to run the query
            try  
      {
                objDataSet = new DataSet("root");
                //new System.Data.SqlClient.SqlDataAdapter.SelectCommand = new System.Data.SqlClient.SqlCommand(strSQL, new System.Data.SqlClient.SqlConnection(strConnection));
       //new System.Data.SqlClient.SqlDataAdapter.Fill(objDataSet, "authors");
    SqlConnection conn = new SqlConnection(strConnection);
    SqlDataAdapter adapter = new SqlDataAdapter(strSQL,conn);
    adapter.Fill(objDataSet,"authors");
   }
     catch (Exception ex)
      {
       lblMessage.Text = ex.Message;
       exit;
      }
     
     //Bind to grid
     try
                    {
      grdNames.DataSource = objDataSet;
            grdNames.DataMember = "authors";
            grdNames.DataBind();
     }
   catch (Exception ex)
         {
         lblMessage.Text = ex.Message;
         Exit;
      }
            
           //Draw the controls in an HTML table

           output.Write("\");
           output.Write(\"----
\");
           output.Write(\"");
           grdNames.RenderControl(output);
           output.Write(", \");
           output.Write(\"\");
           output.Write(\"----
\");
           output.Write(\"");
           lblMessage.RenderControl(output);
           output.Write(", \");
           output.Write(\"\");
           output.Write("
");
  }
 }
}

////////////////////
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016
3
Merci
il te manque peut être le using suivant : System.data ?

Dit moi quoi ;)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rodcobalt22
Messages postés
301
Date d'inscription
jeudi 18 décembre 2003
Statut
Membre
Dernière intervention
9 février 2010
0
Merci
salut
c'est vraie il me manquait qq usings mais maintenant j'ai un autre problème, j'ai integré les using et tout, mais lors de l'execution j'ai un message m'indiquant que le "IListSource ne contient pas de source de données" sachant que j'ai la même source en VB .NET et qui fonctionne très bien, je te file les deux parties du code :
en VB .NET
////////
    Protected Overrides Sub RenderWebPart(ByVal output As System.Web.UI.HtmlTextWriter)
        'Dim objDataSet As System.Data.DataSet
        'Set up connection string from custom properties
        Dim strConnection As String
        strConnection = "Data Source=" + SQLServer
        strConnection += ";Initial Catalog=" + Database
        strConnection += ";Integrated Security=True"
        'Query pubs database
        Dim strSQL As String = "select * from authors"
        'Try to run the query
        Try
            With New System.Data.SqlClient.SqlDataAdapter
                objDataSet = New DataSet("root")
                .SelectCommand = _
                New System.Data.SqlClient.SqlCommand(strSQL, _
                New System.Data.SqlClient.SqlConnection(strConnection))
                .Fill(objDataSet, "authors")
            End With
        Catch ex As Exception
            lblMessage.Text = ex.Message
            Exit Sub
        End Try
        'Bind to grid

        Try
            With grdNames
                .DataSource = objDataSet
                .DataMember = "authors"
                .DataBind()
            End With
        Catch ex As Exception
            lblMessage.Text = ex.Message
            Exit Sub
        End Try
////////
////////
en C#
////////
        protected override void RenderWebPart(HtmlTextWriter output)
        {
            DataSet objDataSet;
            //Set up connection string from custom properties
            string strConnection;
            strConnection = "Data Source=" + SERVER;
            strConnection += ";Initial Catalog=" + DataBase;
            strConnection += ";Integrated Security=True";

            //Query pubs database
            string strSQL = "select * from authors";
            //Try to run the query
            try  
            {
                objDataSet = new DataSet("root");
                SqlDataAdapter dd = new SqlDataAdapter();
                SqlConnection conn = new SqlConnection(strConnection);
                dd.SelectCommand = new SqlCommand(strSQL, conn);
                dd.Fill(objDataSet,"authors");
            }
            catch (Exception ex)
            {
                lblMessage.Text = ex.Message;
                
            }
              
            //Bind to grid
            try
            {
                grdNames.DataSource = objDataSet;
                grdNames.DataMember = "authors";
                grdNames.DataBind();
            }
            catch (Exception ex)
            {
                lblMessage.Text = ex.Message;
                
            }
////////
Merci infiniment pour ton aide!
Commenter la réponse de cs_othland
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016
0
Merci
Bonjour,
a quel endroit te donne t'il cette erreur.
Vérifie si ton VB est bien en "Option Explicit = on"
Car il est important de savoir que VB est beaucoup plus permissif que c# s'il n'est pas configurer correctement.

Je vois que tu utilises deux "Try / Catch", sur lequel tu récupère l'erreur au ".Fill" (Remplissage du DataSet) ? ou sur ton ".DataBind()" (Affichage du dataset).

Peut être que celui ci est tout simplement Vide ? l'as tu tester ?

Autre remarque ou plutôt conseil : pense toujours a effectué des vérification des tes objet plutôt que "trycatcher" autour d'eux, car une exception est beaucoup plus gourmande qu'un test "IF"
Commenter la réponse de cs_rodcobalt22