Colonne auto incremental sur sharepoint

bennour8
Messages postés
1
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
1 mai 2008
- 1 mai 2008 à 19:09
jihed2006
Messages postés
1
Date d'inscription
mardi 11 avril 2006
Statut
Membre
Dernière intervention
27 mai 2008
- 27 mai 2008 à 11:23
Bonjour
j'ai programmé un petit code avec c# pour avoir une colonne auto incremental dans ma liste sharepoint.
 J'ai essayé tout d'abord de faire une connexion à une base qui contenait une colonne auto incremental ensuite j'ajoutais une valeur dans ma table puis je selectionnais le max de la colonne auto incremental ensuite j'affecte le resultat à un champ de ma liste sharepoint apres la creation d'un nouvel element. Mon code (Pour la connection,insert et select) marche correctement ; et quand je veux le tester sur sharepoint ca ne marche pas.
 Enfin j'ai essayé avec des fichiers , ça marche mais il m'affiche sur ma liste sharepoint des valeurs bizarres genre {11;19;31.....} malgrés que mon fichier Fichier1.txt contenait 1. Et le probléme c'est quand j'essaie mon code à part ça marche correctemet. Voici mes 2 classes qui sont dans deux projets differents le premier une classLibrary et le deuxieme c'est une consoleApplication:

using

System;
using

System.Collections.Generic;
using

System.Text;
using

Microsoft.SharePoint;
using

System.Data;
using

System.IO; 

namespace

ClassLibrary2{

public
class
Class1 :
SPItemEventReceiver{

 

public
override
void ItemAdded(
SPItemEventProperties properties){ GenerateID(properties); }

public
override
void ItemUpdated(
SPItemEventProperties properties){ GenerateID(properties); }

void GenerateID(
SPItemEventProperties properties){

int r = 0;

string line=
null;

string resultat =
null;

try{

StreamReader sr =
null;

StreamWriter sw =
null;

//myfile.txt est un fichier temporaire

File.Delete(
@"D:\myfile.txt");

File.Copy(
@"D:\Fichier1.txt",
@"D:\myfile.txt" );sr =

new
StreamReader(
"D:\\myfile.txt");line = sr.ReadLine();
r Int32.Parse(line);r r + 1;

resultat =

Convert.ToString(r);sr.Close();

File.Delete(
@"D:\Fichier1.txt");sw=

new
StreamWriter(
"D:\\Fichier1.txt");sw.Write(r);

sw.Close();

File.Delete(
@"D:\myfile.txt");}

catch (
Exception e){
Console.WriteLine(e.Message); }

SPListItem order = properties.ListItem;order[

"numéro"] =resultat.ToString(); ;order.Update();

}

}

}

_______________________________________________________

using

System;
using

System.Collections.Generic;
using

System.Text;
using

Microsoft.SharePoint;
namespace

ConsoleApplication1{

class
Program{

static
void Main(
string[] args){

SPSite collection =
new
SPSite(
"http://bennour-kbyqxs3:1234");

SPWeb site = collection.OpenWeb();

SPList Annexes = site.Lists[
"Annexes"];

String asmName =
"ClassLibrary2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=79377c6a1b15d1f3";

String className =
"ClassLibrary2.Class1";Annexes.EventReceivers.Add(

SPEventReceiverType.ItemAdded, asmName, className);Annexes.EventReceivers.Add(

SPEventReceiverType.ItemUpdated, asmName, className);}

}

}

S'il vous plait si quelqu'un peut m'aider j'en ai besoin. Merci infiniment. 

1 réponse

jihed2006
Messages postés
1
Date d'inscription
mardi 11 avril 2006
Statut
Membre
Dernière intervention
27 mai 2008

27 mai 2008 à 11:23
salut voici un bou de code pour avoir une colonne auto incremental dans une liste sharepoint.    je pense qu'il marche

        private SPWeb MyWeb;     // représente le site Web SharePoint
        private SPList Professeurs;
        private SPListItem NewItem;    // répresente le nouvel élément
            SPQuery Query = new SPQuery();
            Query.Query = "<OrderBy><FieldRef Name='Nom' /></OrderBy>";
            SPListItemCollection affairItems = Professeurs.GetItems(Query);
            foreach (SPListItem i in affairItems)
            {


                NewItem["Nom"]= Convert.ToString(Convert.ToInt32 (i["Nom"]) + 1);


            }
.
.
.

               NewItem.Update();
                Professeurs.Update();
0