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

cs_othland 301 Messages postés jeudi 18 décembre 2003Date d'inscription 9 février 2010 Dernière intervention - 16 juil. 2007 à 19:07 - Dernière réponse : cs_rodcobalt22 195 Messages postés dimanche 10 février 2002Date d'inscription 16 février 2016 Dernière intervention
- 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 

Votre réponse

3 réponses

cs_rodcobalt22 195 Messages postés dimanche 10 février 2002Date d'inscription 16 février 2016 Dernière intervention - 20 juil. 2007 à 12:56
+3
Utile
il te manque peut être le using suivant : System.data ?

Dit moi quoi ;)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_rodcobalt22
cs_othland 301 Messages postés jeudi 18 décembre 2003Date d'inscription 9 février 2010 Dernière intervention - 20 juil. 2007 à 15:14
0
Utile
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
cs_rodcobalt22 195 Messages postés dimanche 10 février 2002Date d'inscription 16 février 2016 Dernière intervention - 8 août 2007 à 09:59
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.