Colonne auto incremental sur sharepoint

Signaler
Messages postés
1
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
1 mai 2008
-
Messages postés
1
Date d'inscription
mardi 11 avril 2006
Statut
Membre
Dernière intervention
27 mai 2008
-
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

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

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();