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.je selectionnais le max de cette colonne 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
{
publicclassClass1 : 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=newStreamWriter("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
{
classProgram
{
staticvoid Main(string[] args)
{
SPSite collection = newSPSite("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.
Partager