2016-09-16 10 views
0

Я программно создаю формы InfoPath в библиотеке форм в SharePoint 2010 из данных в CSV-файле. Все работает отлично, кроме полей даты. Форма откажется открывать с ошибкой формата. Я пробовал несколько способов форматирования даты, но пока не повезло. Код ниже ...Программно создайте форму Infopath в библиотеке форм SharePoint с датами

Если я формат 2016-10-10, то он отображается в виде Библиотеки форм, но я до сих пор не могу открыть форму. Он просто показывает ошибку типа данных.

 // Get the data from CSV file. 
     string[,] values = LoadCsv("ImportTest.csv"); 

     //Calulate how many columns and rows in the dataset 
     int countCols = values.GetUpperBound(1) + 1; 
     int countRows = values.GetUpperBound(0) + 1; 

     string rFormSite = "siteurl"; 
     // opens the site 
     SPWeb webSite = new SPSite(rFormSite).OpenWeb(); 
     // gets the blank file to copy 
     SPFile BLANK = webSite.Folders["EventSubmissions"].Files["Blank.xml"]; 

     // reads the blank file into an xml document 
     MemoryStream inStream = new MemoryStream(BLANK.OpenBinary()); 
     XmlTextReader reader = new XmlTextReader(inStream); 
     XmlDocument xdBlank = new XmlDocument(); 
     xdBlank.Load(reader); 
     reader.Close(); 
     inStream.Close(); 

     //Get latest ID from the list 
     int itemID = GetNextID(webSite, "EventSubmissions"); 
     if (itemID == -1) return; 

     //Iterate each row of the dataset    
     for (int row = 1; row < countRows; row++) 
     { 

      //display current event name 
      Console.WriteLine("Event name - " + values[row, 4]); 
      XmlDocument xd = xdBlank; 

      XmlElement root = xd.DocumentElement; 

      //Cycling through all columns of the document// 
      for (int col = 0; col < countCols; col++) 
      { 
       string field = values[0, col]; 
       string value = values[row, col]; 

       switch (field) 
       { 
        case "startDate": 
         value = //How do format the date here ; 
         break; 
        case "endDate": 
         value = ""; 
         break; 
        case "AutoFormID": 
         value = itemID.ToString(); 
         break;      
       } 

       XmlNodeList nodes = xd.GetElementsByTagName("my:" + field); 
       foreach (XmlNode node in nodes) 
       { 
        node.InnerText = value; 
       } 

      } 

      // saves the XML Document back as a file 
      System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); 
      SPFile newFile = webSite.Folders["EventSubmissions"].Files.Add(itemID.ToString() + ".xml", (encoding.GetBytes(xd.OuterXml)), true); 
      itemID++; 
     } 

     Console.WriteLine("Complete"); 
     Console.ReadLine(); 

Благодаря

ответ

0

Для меня это работало

DateTime.Now.ToString ("гггг-ММ-дд")